Fehler beim Aufblasen der Klasse android.support.design.widget.NavigationView


87

Ich habe ein Tutorial der neuen Komponente NavigationView in der Support Design Library befolgt und kann diese Fehlermeldung nicht verarbeiten:

Error inflating class android.support.design.widget.NavigationView

Ich habe hier jede Problemumgehung versucht

Fehler bei der Verwendung von Elementen der Android Design Support Library

Es liegt jedoch weiterhin eine Fehlermeldung vor.

xml

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    <include layout="@layout/toolbar" android:id="@+id/mainToolBar" />

    <fragment android:name="com.ais.cherry.fragment.LoginFragment"
        android:id="@+id/loginFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment     android:name="com.ais.cherry.fragment.WaterFallFragment"
        android:id="@+id/mainFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.SearchFragment"
        android:id="@+id/searchFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.ChatMainFragment"
        android:id="@+id/chatMainFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />
    <fragment android:name="com.ais.cherry.fragment.ProfileFragment"
        android:id="@+id/profileFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/mainToolBar" />


    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/white"
        app:itemTextColor="#212121"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer" />
</android.support.v4.widget.DrawerLayout>

build.gradle

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "com.ais.cherry"
    minSdkVersion 16
    targetSdkVersion 22      
    multiDexEnabled true
    renderscriptTargetApi 22
    renderscriptSupportModeEnabled true

}
dependencies {
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:support-v4:22.2.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:recyclerview-v7:22.2.0'
}

Projekt build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

styles.xml

<?xml version="1.0" encoding="utf-8"?>

<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">

</style>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowActionModeOverlay">true</item>
    <item name="android:actionModeStyle">@style/AppTheme.ActionModeStyle</item>
    <item name="android:windowActionBar">false</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowNoTitle">true</item>
    <!-- Support library compatibility -->
    <item name="windowActionBarOverlay">true</item>

    <!-- ActionBar color -->
    <item name="colorPrimary">#E91E63</item>
    <!-- Status bar color -->
    <item name="colorPrimaryDark">#C2185B</item>
    <!-- Window color -->
    <item name="android:windowBackground">@color/white</item>
    <!-- ActionBar title text -->
    <item name="android:titleTextStyle">@style/AppTheme.MyActionBarTitleText</item>

    <item name="colorAccent">#9E9E9E</item>

    <item name="drawerArrowStyle">@style/AppTheme.MyDrawerArrowStyle</item>

    <!-- color for actionMenu-->
    <item name="actionMenuTextColor">#FFFFFF</item>
    <item name="android:actionMenuTextColor">#FFFFFF</item>
    <!-- android:textColorSecondary is the color of the menu
   overflow icon (three vertical dots) -->
    <item name="android:textColorPrimary">#212121</item>
    <item name="android:textColorSecondary">#FFFFFF</item>
    <!--Navigation bar color-->
    <item name="android:navigationBarColor">#E91E63</item>
    <!--Status bar color-->
    <item name="android:statusBarColor">#C2185B</item>
</style>

Jede Hilfe wäre dankbar!

Bearbeiten - @ menu / drawer & @ menu / drawer_header & stacktrace hinzufügen

drawer.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_first_fragment"
            android:icon="@drawable/home_view"
            android:checked="true"
            android:title="@string/main"/>
        <item
            android:id="@+id/nav_second_fragment"
            android:icon="@drawable/comment_view"
            android:title="@string/chat"/>
        <item
            android:id="@+id/nav_third_fragment"
            android:icon="@drawable/user_view"
            android:title="@string/profile"/>
        <item android:title="@string/search">
            <menu>
                <item
                    android:title="@string/clothes"/>
                <item
                    android:title="@string/pants"/>
            </menu>
        </item>
    </group>
</menu>

drawer_header.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="192dp"
    android:background="?attr/colorPrimaryDark"
    android:padding="16dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:gravity="bottom">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/title"
        android:textColor="@android:color/white"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>
</LinearLayout>

StackTrace (nur ein Teil davon)

Es wurden drei Ausnahmen wie folgt ausgegeben: Alle weisen darauf hin, dass die Probleme durch die Zeile "setContentView (layout)" in layout.xml verursacht werden.

java.lang.RuntimeException: Unable to start activity  ComponentInfo{com.ais.cherry/com.ais.cherry.activity.FirstActivity}:    android.view.InflateException: Binary XML file line #32: Error inflating    class android.support.design.widget.NavigationView

Caused by: android.view.InflateException: Binary XML file line #32: Error inflating class android.support.design.widget.NavigationView

Caused by: java.lang.reflect.InvocationTargetException

Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0

Können Sie auch die XML @layout/drawer_headerund XML posten @menu/drawer?
TheoK

Bitte posten Sie auch den gesamten Stack-Trace.
CommonsWare

@ TheoK Ich bearbeite meine Frage ~ danke
pptang

Nun, es kann keine Ihrer Ressourcen finden. Ich weiß aber nicht welche.
CommonsWare

Ich habe mich dem gestellt, weil ich Code überarbeitet habe. Grundsätzlich habe ich eine Variable namens parent to parentFragment überarbeitet, um genauer zu sein, und Android Studio hat die Änderung auch in styles.xml vorgenommen. Musste den Stil wieder auf parent = "<whatever-base-class>" korrigieren und es funktionierte wieder.
Saifur Rahman Mohsin

Antworten:


83

Tatsächlich geht es nicht darum primarycolortext, die Abhängigkeiten zu aktualisieren oder herunterzustufen. Dieses Problem tritt wahrscheinlich auf, wenn die Version Ihrer appcompatBibliothek und der Design-Support-Bibliothek nicht übereinstimmt.

Beispiel für eine Übereinstimmungsbedingung

compile 'com.android.support:appcompat-v7:23.1.1' // appcompat library
compile 'com.android.support:design:23.1.1'       //design support library

Können Sie mir erklären, wie man dieses Problem für einen Neuling wie mich erkennt plz :)
Jerome2606

Wenn Sie in Ihrer app / build.gradle immer eine Variable für solche Dinge deklarieren, verhindern Sie, dass Sie vergessen, Änderungen def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion"
vorzunehmen

3
Beide von mir verwendeten Bibliotheken sind gleich, erhalten aber immer noch den gleichen Fehler. Überprüfen Sie unten Code kompilieren 'com.android.support:appcompat-v7:23.4.0' kompilieren 'com.android.support:design:23.4.0'
Maya Mohite

1
Ich sollte verwenden support of version 26. Ich benutze 'com.android.support:appcompat-v7:26.1.0'. Ist 26.1.0richtig?
Nimmagadda Gowtham

Fehler in Gradle 4.1 mit compileSdkVersion 25 buildToolsVersion '26 .0.2 'und compile' com.android.support:appcompat-v7:23.0.0 'compile' com.android.support:design:23.0.0 'compile' com.android .support: support-v4: 23.0.0 'Die folgenden Änderungen wurden behoben. compile' com.android.support:appcompat-v7:25.0.0 'compile' com.android.support:design:25.0.0 'compile' com.android .support: support-v4: 25.0.0 '
iambegineer

45

Ich hatte einen ähnlichen Fehler. Wenn ich benutze

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="colorPrimary">#673AB7</item>
    <item name="colorPrimaryDark">#512DA8</item>
    <item name="colorAccent">#00BCD4</item>
    <item name="android:textColorPrimary">#212121</item>
    <item name="android:textColorSecondary">#727272</item>

</style>

funktioniert für mich, wenn ich die Themenelemente android: textColorPrimary und android: textColorSecondary entferne.

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="colorPrimary">#673AB7</item>
    <item name="colorPrimaryDark">#512DA8</item>
    <item name="colorAccent">#00BCD4</item>

</style>

Versuchen Sie zunächst, mit einem sehr einfachen App-Thema zu arbeiten.

BEARBEITEN:

Dieses Tutorial wird helfen. Nach meinem Verständnis erfordert die Verwendung von "android: textColorPrimary" eine Mindest-API-Stufe 21. Wenn Sie dasselbe Tag ohne "android:" verwenden, wird die Design-Support-Bibliothek verwendet. Jedes Support-Bibliotheks-Widget versucht, das Element "textColorPrimary" anstelle von "android: textColorPrimary" zu finden. Wenn es das gleiche nicht findet, wird der oben genannte Fehler ausgegeben.


Danke, es funktioniert wie ein Zauber !!!! Aber wissen Sie, warum wir diese beiden Attribute entfernen sollten?
Pptang

4
Ich hatte diese beiden Attribute nie und erhalte immer noch den gleichen Fehler. Irgendwelche Ideen?
Shubham Chaudhary

1
Für mich schlägt es immer noch fehl, selbst wenn ich android: textColorPrimary in values-v21 / styles.xml
David

1
Bitte beachten Sie die Antwort, die Balman Rawat unten gegeben hat. In meinem Fall musste ich beide Antworten anwenden.
NewestStackOverflowUser

@Parag Naik Du hast meine Woche gerettet, danke :) Ich liebe diese Community.
Yasin Kaçmaz

41

Ich hatte auch den gleichen Fehler. In meinem Fall befanden sich einige der Ressourcen nur in drawable-v21. Kopieren Sie diese Ressourcen auch in einen zeichnbaren Ordner. Dies löste das Problem für mich.

Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0 

Dies ist das Hauptproblem.


2
Jep. Auch für mich. Es gab eine zeichnbare XML-Datei mit a vectorim v21Ordner und nichts Entsprechendes im <21 Standardordner. Vielen Dank.
Eoinzy

1
Spot on .. Ich habe die Bilder in drawable-xx hinzugefügt, aber nicht in drawable. Das war das Problem
Rahul Hawge

1
Vielen Dank, meine selector.xml und andere XML-Datei waren auch da. Ich kopiere es einfach und speichere das Problem
MohammadL

27

Wenn Sie bereits migriert sind androidx, sollten Sie Ihre Layout-XML von ändern

<android.support.design.widget.NavigationView ... />

zu

<com.google.android.material.navigation.NavigationView ... />

15

Ich hatte den gleichen Fehler, den ich durch Hinzufügen app:itemTextColor="@color/a_color"zu meiner Navigationsansicht behoben habe :

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="left"
    app:headerLayout="@layout/layout_drawer_header"
    app:menu="@menu/drawer_menu"
    app:itemTextColor="@color/primary"/>

Sie können android:textColorPrimaryund android:textColorSecondaryin Ihrem Thema weiterhin mit dieser Methode verwenden.


Ich habe Ihre Problemumgehung von hier aus versucht , aber immer noch die gleiche Fehlermeldung erhalten. Trotzdem danke für deine Hilfe.
Pptang

14

Also habe ich versucht, diesen Fehler zu beheben. Und keiner hat für mich gearbeitet. Ich konnte keine Lösung finden. Szenario:

Ich wollte gerade ein Navigation Drawer ProjectInside Android Studio 2.1.2 erstellen. Und als ich versuchte, das Standard-Android-Symbol in zu ändern nav_header_main.xml, wurden einige seltsame Fehler angezeigt . Ich fand heraus, dass ich mein PNGLogo in das fallen ließ ...\app\src\main\res\drawable-21. Wenn ich versuche, mein PNG-Logo in ...\app\src\main\res\drawablebam zu setzen! Alle seltsamen Fehler verschwinden.

Im Folgenden sind einige Stapelverfolgungen aufgeführt, als ich PNG in einen drawable-21Ordner legte:

08-17 17:29:56.237 6644-6678/myAppName  E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.Restarter.getActivities
08-17 17:30:01.674 6644-6644/myAppName E/AndroidRuntime: FATAL EXCEPTION: main
                                                                         java.lang.RuntimeException: Unable to start activity ComponentInfo{myAppName.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class <unknown>
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2372)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)
                                                                             at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956)
                                                                             at android.app.ActivityThread.access$700(ActivityThread.java:169)
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:107)
                                                                             at android.os.Looper.loop(Looper.java:194)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5433)
                                                                             at java.lang.reflect.Method.invokeNative(Native Method)
                                                                             at java.lang.reflect.Method.invoke(Method.java:525)
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691)
                                                                             at dalvik.system.NativeStart.main(Native Method)
                                                                          Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class <unknown>
                                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:613)
                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
                                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                             at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22)
                                                                             at android.app.Activity.performCreate(Activity.java:5179)
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146)
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336)
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424) 
                                                                             at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956) 
                                                                             at android.app.ActivityThread.access$700(ActivityThread.java:169) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                             at android.os.Looper.loop(Looper.java:194) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5433) 
                                                                             at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          Caused by: java.lang.reflect.InvocationTargetException
                                                                             at java.lang.reflect.Constructor.constructNative(Native Method)
                                                                             at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
                                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:587)
                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
                                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                             at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22) 
                                                                             at android.app.Activity.performCreate(Activity.java:5179) 
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146) 
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336) 
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424) 
                                                                             at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956) 
                                                                             at android.app.ActivityThread.access$700(ActivityThread.java:169) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                             at android.os.Looper.loop(Looper.java:194) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5433) 
                                                                             at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class ImageView
                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at android.support.design.internal.NavigationMenuPresenter.inflateHeaderView(NavigationMenuPresenter.java:189)
at android.support.design.widget.NavigationView.inflateHeaderView(NavigationView.java:262)
at android.support.design.widget.NavigationView.<init>(NavigationView.java:173)
at android.support.design.widget.NavigationView.<init>(NavigationView.java:95)
at java.lang.reflect.Constructor.constructNative(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
                                                                             at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                             at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22) 
                                                                             at android.app.Activity.performCreate(Activity.java:5179) 
                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146) 
                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336) 
                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424) 
                                                                             at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956) 
                                                                             at android.app.ActivityThread.access$700(ActivityThread.java:169) 
                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
                                                                             at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                             at android.os.Looper.loop(Looper.java:194) 
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5433) 
                                                                             at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924) 
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691) 
                                                                             at dalvik.system.NativeStart.main(Native Method) 
                                                                          Caused by: java.lang.NullPointerException
                                                                             at android.content.res.ResourcesEx.getThemeDrawable(ResourcesEx.java:459)
                                                                             at android.content.res.ResourcesEx.loadDrawable(ResourcesEx.java:435)
                                                                             at android.content.res.TypedArray.getDrawable(TypedArray.java:609)
                                                                             at android.widget.ImageView.<init>(ImageView.java:120)
                                                                             at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:57)
                                                                             at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:53)
                                                                             at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:980)
                                                                             at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1039)
                                                                             at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
                                                                            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:

Wie Sie sehen können, enthält die obige Stapelverfolgung Folgendes:

android.support.design.widget.NavigationView.inflateHeaderView (NavigationView.java:262) unter android.support.design.widget.NavigationView. (NavigationView.java:173) unter android.support.design.widget.NavigationView. (NavigationView. Java: 95)


1
Sehr gut, danke für die Antwort. Es scheint eine Art Antwort zu sein, die in allen anderen Beiträgen vermieden wurde. Ich habe versucht, drawable-v21 zu erstellen und alles dort zu setzen, während ich bereits einen zeichnbaren Ordner hatte und ihn nur dort ablegen musste
quant

11

Ich habe das Downgrade in Gradle von gelöst

compile 'com.android.support:design:23.1.0'

zu

compile 'com.android.support:design:23.0.1'

Es scheint, dass ich immer Probleme bekomme, wenn ich eine Komponente von Android Studio aktualisiere. Ich werde es leid.


1
Die Design Support Library ist kaum mit Android Studio verwandt.
Sotti

Ich hatte das gleiche Problem und konnte es nur durch Downgrade wie bei @Ton erwähnt lösen. Ich weiß wirklich nicht, wie die Support Library mit Android Studio Plugin- und Platform-Updates zusammenhängt, aber jedes Mal, wenn ich das eine oder andere aktualisiere, funktioniert es für mich nicht. Ich schlage diese Antwort wirklich vor.
Saraschandraa

1
Eher ein Downgrade habe ich Compact auf 23.1.0 aktualisiert. Ich denke, es ist am besten, neuere Bibliotheken zu verwenden. Meine Antwort über stackoverflow.com/a/38141666/3172518
karan

8

Keine der oben genannten Korrekturen hat bei mir funktioniert.

Was für mich funktionierte, veränderte sich

<item name="android:textColorSecondary">#FFFFFF</item>

zu

<item name="android:textColorSecondary">@color/colorWhite</item>

Sie müssen Ihrer color.xml natürlich colorWhite hinzufügen


8

Die folgenden Schritte werden diesen Fehler sicher beheben.

  • Suchen Sie das Widget, das den Fehler verursacht.
  • Wechseln Sie in die Layoutdatei, in der das Widget deklariert ist.
  • Überprüfen Sie, ob alle in dieser Datei verwendeten Ressourcen (Zeichen usw.) vorhanden sind.
  • Stellen Sie dann sicher, dass die Ressource in allen Versionen von Drawables (Drawable-v21, Drawable usw.) vorhanden ist.

Prost!!


5

Wie Parag Naik richtig erwähnt (und Lạng Hoàng erweitert), tritt das Problem auf, wenn textColorPrimary auf etwas anderes als eine Farbstatusliste gesetzt wird. Sie können also textColorPrimary als Statusliste festlegen. Es gibt ein Problem im Android Bug Tracker, dass colorPrimary eine Statusliste mit nur einer Farbe ist: https://code.google.com/p/android/issues/detail?id=172353

Also für dein Thema in styles.xml:

<style name="Base.Theme.Hopster" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>

    <item name="android:textColorPrimary">@color/primary_color_statelist</item>
</style>

Und die eigentliche Datei primary_color_statelist.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- This is used when the Navigation Item is checked -->
    <item android:color="@color/primary_text_selected" android:state_checked="true" />
    <!-- This is the default text color -->
    <item android:color="@color/primary_text" />
</selector>

5

In meinem Fall hatte ich den gleichen Fehler, als ich die App auf dem Kitkat API 19-Versionsgerät ausführte. Ich habe das Problem herausgefunden. Ich hatte einige zeichnbare Ressourcen, die sich im Verzeichnis drawable-v21 befanden (das für Versionen von API 21 Lollipop verwendet wird). Ich habe nur die gleichen Ressourcen in den Ordner "Drawable" gelegt, um mit der Version unter API 21 zu arbeiten. Es funktioniert. Sie können es in das entsprechende Verzeichnis stellen


4

Für mich ist dieser Fehler oft aufgetreten,

Fehler beim Aufblasen der Klasse android.support.design.widget.NavigationView # 28 und # 29

Die Lösung, die für mich funktioniert, besteht darin, dass Sie Ihre Support-Design-Bibliothek und Ihre Support-Appcompat-Bibliothek abgleichen müssen.

compile 'com.android.support:appcompat-v7:23.1.1'

compile 'com.android.support:design:23.1.1'

Für mich müssen sie zusammenpassen. :) Für mich geht das!


3

Nur für diejenigen, die noch zu diesem Thema kommen. Ich habe das gleiche Problem, aber alle Lösungen hier funktionieren bei mir nicht.

Schauen Sie sich einfach die NavigationView-Klasse mit dem Hinweis von logcat an. Ich habe festgestellt, dass das Problem aus dieser Codezeile stammt:

itemTextColor = this.createDefaultColorStateList(16842806);

Es scheint also mit itemTextColor verwandt zu sein, wie Aenur56 erwähnt. Also habe ich es mit der Lösung von Aenur56 versucht, aber es funktioniert nicht.

Werfen Sie einen Blick auf die Codezeile oben, ich stelle fest, dass es ColorStateList gibt. Also erstelle ich eine und setze sie dann für itemTextColor, dann funktioniert es.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#00FF00" android:state_checked="true" />
    <item android:color="#000000" />
</selector>

Hoffe es hilft!


3

Keine der oben genannten Lösungen hat mir geholfen. Ich fand dies auf einer anderen Webseite und es funktionierte für mich - "In project.properties der Designbibliothek setzen Sie das Ziel auf 21 oder die höchste verfügbare, dann bereinigen Sie die Designbibliothek, appcomapt und Ihr Projekt und genießen Sie es."

Hoffe es wird helfen!


Wo ist project.properties der Designbibliothek?
8oh8

2

Stellen Sie sicher, dass sich Ihre Drawables für das Menü im richtigen Ordner befinden. Meiner wurde in drawablev21 abgelegt, daher verursachte dies einen Nullzeiger für die Ressource.

Es wurde behoben, dass meine Symbole in den Ordner "Drawables" verschoben wurden


1

Ich hatte das gleiche Problem nach dem Upgrade der Support-Bibliothek und keine der Antworten funktionierte für mich. Schließlich löste ich das Herunterladen der neuesten Version der Build-Tools und das Upgrade in build.gradle aufbuildToolsVersion "23.0.1"


1

Eine Sache, die Sie noch einmal überprüfen sollten, ist, dass Sie Ihr Thema in Ihrer AndroidManifest.xml-Datei korrekt angewendet haben. In meinem Fall hatte ich das Attribut android: theme weggelassen . Z.B:

<application ... android:theme="@style/Your.Theme.Here" ... >

1

BESSER ICH HABE UPGRADIERT com.android.support:appcompat-v7:23.1.0

wie @Ton sagte Downgradecompile 'com.android.support:design:23.1.0'

ABER warum nicht upgraden? com.android.support:appcompat-v7:23.1.1

Das endgültige Upgrade hat für mich Spaß gemacht

compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'

Warum also eine ältere Bibliothek verwenden? Ich denke, es ist jetzt besser, sowohl Design als auch kompaktes Upgrade zu verwenden.


1
Ich aktualisiere meine, wie @karan geschrieben hat, und es funktioniert für mich.
Alexiscanny

1

Ich hatte auch das gleiche Problem. Nachdem ich fast 3 Stunden lang nachgesehen hatte, stellte ich fest, dass das Problem in meiner Datei drawable_menu.xml lag. Es wurde falsch geschrieben: D.


1

Dieser Fehler kann aus den unten genannten Gründen verursacht werden.

  1. Dieses Problem tritt wahrscheinlich auf, wenn die Version Ihrer Appcompat-Bibliothek und der Design-Support-Bibliothek nicht übereinstimmt. Beispiel für eine Übereinstimmungsbedingung

     compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library
    
     compile 'com.android.support:design:24.2.0' //design support library
  2. Wenn Ihre Themendatei in Stilen nur diese beiden enthält,

     <item name="colorPrimary">#4A0958</item>
     <item name="colorPrimaryDark">#4A0958</item>

Fügen Sie dann auch ColorAccent hinzu. Es sollte ungefähr so ​​aussehen.

 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">

  <item name="colorPrimary">#4A0958</item>
  <item name="colorPrimaryDark">#4A0958</item>
  <item name="colorAccent">#4A0958</item>

 </style>

Ich habe bearbeitet. Es bedeutet, ColorAccent auch dann hinzuzufügen, wenn es nicht vorhanden ist.
Vishal Puri

1

Allgemeine Methode zur Lösung von Problemen wie Error inflating class X:

  1. Überprüfen Sie die Ursache für die Stapelverfolgung, und es sollte Resources$NotFoundExceptionFolgendes geben:
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0066
    at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190)
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2094)
    at android.content.res.Resources.getLayout(Resources.java:1111)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:424)
  1. Resource ID ist eigentlich eine exakte Ganzzahl aus der generierten R.java-Datei.
  2. Finden 0x7f0b0066 welche Datei auf die XML-Datei verweist, die nicht aufgeblasen werden konnte (gefunden).
  3. In den meisten Fällen liegt das daran, dass das Verzeichnis layoutdiese Ressource nicht hat, aber einigelayout-XXX jedoch.
  4. Die Lösung besteht darin, Ressourcen in alle erforderlichen Verzeichnisse zu stellen. Oder zumindest in layout.

1

Es ist seltsam, aber sauberes Projekt und Wiederaufbauprojekt hat für mich funktioniert.


1

In meinem Fall hatte ich

<android.support.design.widget.NavigationView...

und in der App-Konfiguration:

implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'

Also habe ich das XML geändert in:

com.google.android.material.navigation.NavigationView...

Dies ist richtig nach der Migration auf AndroidX danke
Stark

0

Ich habe eine Lösung gefunden ... wenn Sie app: srcCompat verwendet haben, wechseln Sie zu android: src, diese Lösung hat bei mir funktioniert :)


0

Ich hatte diesen Fehler in Xamarin. Dies lag an einigen Dateien, die im Ordner drawable-v21 vorhanden waren . Also habe ich diese Dateien (wahrscheinlich Symboldateien ) in den Zeichenordner kopiert und der Fehler war verschwunden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.