Error al inflar la clase android.support.design.widget.NavigationView

87

Seguí un tutorial del nuevo componente NavigationView en Support Design Library y no puedo leer este mensaje de error:

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

Probé todas las soluciones aquí

Error al usar cualquier elemento de la biblioteca de compatibilidad de diseño de Android

pero el mensaje de error aún existe.

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'
}

Proyecto 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>

¡Cualquier ayuda sería apreciada!

Editar - agregar @ menu / drawer & @ menu / drawer_header & stacktrace

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 (solo una parte de ellos)

Lanzó tres excepciones como se muestra a continuación: todas señalan que los problemas son causados ​​por la línea de "setContentView (layout)" en layout.xml.

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
pptang
fuente
¿También puedes publicar xml @layout/drawer_headery xml @menu/drawer?
TheoK
Además, publique el seguimiento completo de la pila.
CommonsWare
@TheoK Edito mi pregunta ~ gracias
pptang
Bueno, no puede encontrar uno de sus recursos. Aunque no sé cuál.
CommonsWare
Me enfrenté a esto porque refactoricé un código. Básicamente, refactoricé una variable llamada parent to parentFragment para que fuera más precisa y Android Studio también hizo el cambio en styles.xml. Tuve que arreglar el estilo de nuevo a parent = “<whatever-base-class>” y funcionó de nuevo.
Saifur Rahman Mohsin

Respuestas:

83

En realidad, no se trata de primarycolortextactualizar o degradar las dependencias. Este problema probablemente ocurrirá cuando la versión de su appcompatbiblioteca y la biblioteca de soporte de diseño no coincidan.

Ejemplo de condición de coincidencia

compile 'com.android.support:appcompat-v7:23.1.1' // appcompat library
compile 'com.android.support:design:23.1.1'       //design support library
Balman Rawat
fuente
¿Puede explicarme cómo detectar este problema para un novato como yo por
favor
Si siempre declara una variable para cosas como esta en su aplicación / build.gradle, evita que se olvide de cambiar, como en:def supportVersion = '25.1.0' compile "com.android.support:appcompat-v7:$supportVersion" compile "com.android.support:design:$supportVersion"
maduro
3
Ambos usos de las bibliotecas son los mismos pero siguen teniendo el mismo error. Verifique el código siguiente compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0'
Maya Mohite
1
Debería usar support of version 26. Estoy usando 'com.android.support:appcompat-v7:26.1.0'. Es 26.1.0correcto?
Nimmagadda Gowtham
Se encontró un error en Gradle 4.1 con compileSdkVersion 25 buildToolsVersion '26 .0.2 'y 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 'Resuelto haciendo los cambios siguientes compilar' com.android.support:appcompat-v7:25.0.0 'compilar' com.android.support:design:25.0.0 'compilar' com.android .support: support-v4: 25.0.0 '
iambegineer
45

Tuve un error similar. Cuando uso

<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>

funciona para mí cuando elimino los elementos del tema android: textColorPrimary y android: textColorSecondary.

<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>

Intente trabajar con un tema de aplicación muy simple para empezar.

EDITAR:

Este tutorial te ayudará. Tengo entendido que el uso de "android: textColorPrimary" requiere un nivel mínimo de API 21. El uso de la misma etiqueta sin "android:" utiliza la biblioteca de soporte de diseño. Cualquier widget de biblioteca de soporte intentará encontrar el elemento "textColorPrimary" en lugar de "android: textColorPrimary" y, si no encuentra el mismo, arroja el error mencionado anteriormente.

Parag Naik
fuente
Gracias, funciona como un encanto !!!! pero ¿sabes por qué deberíamos eliminar estos dos atributos?
pptang
4
Nunca tuve estos dos atributos y sigo recibiendo el mismo error. ¿Algunas ideas?
Shubham Chaudhary
1
Para mí, todavía falla incluso si agrego android: textColorPrimary en values-v21 / styles.xml
David
1
Considere la respuesta que Balman Rawat dio a continuación. En mi caso tuve que aplicar ambas respuestas.
NewestStackOverflowUser
@Parag Naik Salvaste mi semana gracias :) Me encanta esta comunidad.
Yasin Kaçmaz
41

También tuve el mismo error. En mi caso, algunos de los recursos estaban solo en drawable-v21. Copie esos recursos a la carpeta dibujable también. Esto me resolvió el problema.

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

Este es el principal problema.

Sajal
fuente
2
Sip. Lo mismo para mi. Había un archivo XML dibujable usando un vectoren la v21carpeta y nada correspondiente en la carpeta estándar <21. Gracias.
eoinzy
1
Spot on .. Agregué las imágenes en drawable-xx pero no en drawable. Ese fue el problema
Rahul Hawge
1
muchas gracias mi selector.xml y otro archivo xml también estaban allí. Lo copio y guardo el problema
MohammadL
27

Si ya ha migrado a androidx, debe cambiar su diseño xml de

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

a

<com.google.android.material.navigation.NavigationView ... />
Mark Pazon
fuente
15

Tuve el mismo error, lo resolví agregando app:itemTextColor="@color/a_color"a mi vista de navegación:

<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"/>

Todavía puede usar android:textColorPrimaryy android:textColorSecondaryen su tema con este método.

Pidikan
fuente
Probé tu solución alternativa desde aquí , pero sigo recibiendo el mismo mensaje de error. Gracias por tu ayuda de todos modos.
pptang
15

Bueno, estaba tratando de corregir este error. Y ninguno funcionó para mí. No pude encontrar una solución. Guión:

Iba a hacer un Navigation Drawer ProjectAndroid Studio 2.1.2 interno y cuando trato de cambiar el ícono predeterminado de Android, nav_header_main.xmlrecibía algunos errores extraños. Me di cuenta de que estaba colocando mi PNGlogo en el ...\app\src\main\res\drawable-21. Cuando intento poner mi logo PNG en ...\app\src\main\res\drawablebam! Todos los errores extraños desaparecen.

A continuación se muestran algunos de los rastros de la pila cuando estaba colocando PNG en la drawable-21carpeta:

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:2424at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956at android.app.ActivityThread.access$700(ActivityThread.java:169at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394at android.os.Handler.dispatchMessage(Handler.java:107at android.os.Looper.loop(Looper.java:194at android.app.ActivityThread.main(ActivityThread.java:5433at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691at 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:687at android.view.LayoutInflater.rInflate(LayoutInflater.java:746at android.view.LayoutInflater.inflate(LayoutInflater.java:489at android.view.LayoutInflater.inflate(LayoutInflater.java:396at android.view.LayoutInflater.inflate(LayoutInflater.java:352at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22at android.app.Activity.performCreate(Activity.java:5179at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956at android.app.ActivityThread.access$700(ActivityThread.java:169at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394at android.os.Handler.dispatchMessage(Handler.java:107at android.os.Looper.loop(Looper.java:194at android.app.ActivityThread.main(ActivityThread.java:5433at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691at 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:417at android.view.LayoutInflater.createView(LayoutInflater.java:587at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687at android.view.LayoutInflater.rInflate(LayoutInflater.java:746at android.view.LayoutInflater.inflate(LayoutInflater.java:489at android.view.LayoutInflater.inflate(LayoutInflater.java:396at android.view.LayoutInflater.inflate(LayoutInflater.java:352at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140at edu.uswat.fwd82.findmedoc.MainActivity.onCreate(MainActivity.java:22at android.app.Activity.performCreate(Activity.java:5179at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1146at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3956at android.app.ActivityThread.access$700(ActivityThread.java:169at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394at android.os.Handler.dispatchMessage(Handler.java:107at android.os.Looper.loop(Looper.java:194at android.app.ActivityThread.main(ActivityThread.java:5433at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                             at java.lang.reflect.Method.invoke(Method.java:525at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:691at 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:

Como puede ver, el seguimiento de pila anterior incluye:

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

fWd82
fuente
1
Muy bien, gracias por la respuesta. Parece una respuesta que se evitó en todas las demás publicaciones. Estaba tratando de crear drawable-v21 y poner todo allí mientras ya tenía una carpeta dibujable y solo tenía que colocarla allí
cuant
11

Lo resolví degradando en gradle desde

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

a

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

Parece que siempre tengo problemas cuando actualizo cualquier componente de Android Studio. Cansarme de eso.

Tonelada
fuente
1
La biblioteca de soporte de diseño apenas está relacionada con Android Studio.
Sotti
Tuve el mismo problema y solo pude resolverlo degradando como mencionó @Ton. Realmente no sé cómo se relaciona la biblioteca de soporte con las actualizaciones de la plataforma y el complemento de Android Studio, pero cada vez que actualizo una u otra, no me funciona. Realmente sugiero esta respuesta.
Saraschandraa
1
En lugar de degradar, actualicé Compact para que coincida con 23.1.0. Creo que es mejor usar bibliotecas más nuevas, mi respuesta anterior stackoverflow.com/a/38141666/3172518
karan
8

Ninguna de las correcciones anteriores funcionó para mí.

Lo que funcionó para mí estaba cambiando

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

a

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

Obviamente, debe agregar colorWhite a su colors.xml

Rafal Roszak
fuente
8

Los siguientes pasos seguramente eliminarán este error.

  • Busque el widget que causa el error.
  • Vaya al archivo de diseño donde se declara ese widget.
  • Compruebe todos los recursos (elementos de diseño, etc.) utilizados en ese archivo.
  • Luego, asegúrese de que el recurso esté allí en todas las versiones de elementos de diseño (dibujable-v21, dibujable, etc.)

¡¡Salud!!

Prashant Paliwal
fuente
5

Como Parag Naik menciona correctamente (y Lạng Hoàng amplía), el problema surge cuando se configura textColorPrimary en algo que no sea una lista de estado de color. Entonces podría establecer textColorPrimary como una lista de estado. Hay un problema en el rastreador de errores de Android acerca de que colorPrimary es una lista de estado con un solo color: https://code.google.com/p/android/issues/detail?id=172353

Entonces, para su tema en 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>

Y el archivo primary_color_statelist.xml real:

<?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>
Chris
fuente
5

En mi caso, tuve el mismo error cuando ejecuté la aplicación en el dispositivo kitkat API 19 versión. Resolví el problema; Tenía algunos recursos dibujables que estaban en el directorio drawable-v21 (que se usa para las versiones de API 21 Lollipop). Acabo de poner los mismos recursos en la carpeta "Drawable" para trabajar con la versión anterior a la API 21. Funciona. Puedes ponerlo en el directorio correspondiente

Jack
fuente
4

Para mí, encontré este error muchas veces,

Error al inflar la clase android.support.design.widget.NavigationView # 28 y # 29

La solución que me funciona es que debe coincidir con su biblioteca de diseño de soporte y su biblioteca de compatibilidad de aplicaciones de soporte.

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

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

Para mí deben coincidir. :) ¡Esto funciona para mi!

RoCk RoCk
fuente
3

Solo para quienes todavía llegan a este tema. Llegué al mismo problema, pero todas las soluciones aquí no funcionan para mí.

Solo eche un vistazo a la clase NavigationView con la señal de logcat, encontré que el problema proviene de esta línea de código:

itemTextColor = this.createDefaultColorStateList(16842806);

Entonces, parece relacionado con itemTextColor como mencionó Aenur56. Así que probé con la solución de Aenur56 pero no funciona.

Eche un vistazo a la línea de código anterior, me doy cuenta de que hay ColorStateList. Así que creo uno y luego lo configuro para itemTextColor y luego funciona.

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

¡Espero que te ayude!

Lạng Hoàng
fuente
3

Ninguna de las soluciones anteriores me ayudó. Encontré esto en otra página web y funcionó para mí: "En project.properties of design library, establezca el objetivo en 21 o el más alto disponible, luego limpie la biblioteca de diseño, appcomapt y su proyecto y disfrute"

¡Espero que te ayude!

Michał Stawski
fuente
¿Dónde está project.properties of design library?
8oh8
2

Asegúrese de que sus elementos de diseño para el menú estén en la carpeta correcta, el mío se puso en drawablev21, por lo que esto provocó un puntero nulo al recurso.

Se arregló comprar moviendo mis íconos a la carpeta de dibujables

Ismael ozil
fuente
1

Tuve el mismo problema después de actualizar la biblioteca de soporte y ninguna de las respuestas me funcionó. Finalmente resolví descargar la última versión de las herramientas de compilación y actualizar en build.gradle abuildToolsVersion "23.0.1"

Erick
fuente
1

Una cosa que debe verificar es que haya aplicado su tema correctamente en su archivo AndroidManifest.xml. En mi caso, había omitido el atributo android: theme . P.ej:

<application ... android:theme="@style/Your.Theme.Here" ... >
David Conlisk
fuente
1

MEJOR ME MEJORÉ com.android.support:appcompat-v7:23.1.0

como dijo @Ton rebajarcompile 'com.android.support:design:23.1.0'

PERO ¿Por qué no actualizar com.android.support:appcompat-v7:23.1.1

La actualización final funcionó para mí disfrutar

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

Entonces, ¿por qué usar una biblioteca más antigua? Creo que ahora es mejor utilizar tanto el diseño como el compacto actualizado.

karan
fuente
1
Actualizo mi uno, como lo escribió @karan, y funciona para mí.
Alexiscanny
1

También estaba teniendo este mismo problema, después de mirar casi 3 horas descubrí que el problema estaba en mi archivo drawable_menu.xml, estaba mal escrito: D

Antarix
fuente
1

Este error puede deberse a las razones que se mencionan a continuación.

  1. Es probable que este problema ocurra cuando la versión de la biblioteca de compatibilidad de aplicaciones y la biblioteca de soporte de diseño no coincidan. Ejemplo de condición de coincidencia

     compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library
    
     compile 'com.android.support:design:24.2.0' //design support library
    
  2. Si su archivo de tema en estilos solo tiene estos dos,

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

luego agregue ColorAccent también. Debería verse algo así.

 <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>
Vishal Puri
fuente
he editado. Significa agregar ColorAccent también si no está presente.
Vishal Puri
1

Forma genérica de resolver problemas como Error inflating class X:

  1. verifique el seguimiento de la pila de causa y debería ser Resources$NotFoundExceptionasí:
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 es un número entero exacto del archivo R.java generado.
  2. Encuentre 0x7f0b0066cuál apuntará al archivo xml que no se pudo inflar (encontrado).
  3. En la mayoría de los casos, eso se debe a que el directorio layoutno tiene este recurso, pero algunos sí layout-XXX.
  4. Y la solución es poner recursos en todos los directorios necesarios. O al menos en layout.
once
fuente
1

Es un proyecto extraño pero limpio y un proyecto de reconstrucción que funcionó para mí.

shaby
fuente
1

En mi caso tuve

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

y en la configuración de la aplicación:

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

Así que cambié el XML a:

com.google.android.material.navigation.NavigationView...
Mihai
fuente
esto es correcto después de migrar a androidx gracias
Stark
0

Encontré una solución ... si usó la aplicación: srcCompat, cambie a android: src, esta solución funcionó para mí :)

Khun Htetz Naing
fuente
0

Me enfrentaba a este error en Xamarin. Esto se debió a algunos archivos que estaban presentes en la carpeta drawable-v21 . Así que copié esos archivos (probablemente archivos de iconos) a la carpeta dibujable y el error desapareció.

Juned Khan Momin
fuente