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

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 

Intenté cada solución aquí

Error al usar elementos de biblioteca de soporte de diseño de Android

pero el mensaje de error todavía existe.

xml

           

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

  

     true true @style/AppTheme.ActionModeStyle false false true true  true  #E91E63  #C2185B  @color/white  @style/AppTheme.MyActionBarTitleText #9E9E9E @style/AppTheme.MyDrawerArrowStyle  #FFFFFF #FFFFFF  #212121 #FFFFFF  #E91E63  #C2185B  

¡Cualquier ayuda sería apreciada!

Editar – agregar @ menú / drawer & @ menu / drawer_header & stacktrace

drawer.xml

              

drawer_header.xml

    

StackTrace (solo parte de ellos)

Lanzó tres excepciones de la siguiente manera: todo indica que los problemas están causados ​​por la línea de “setContentView (layout)” en 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 

En realidad, no es cuestión de primarycolortext , actualizar o degradar las dependencias. Este problema probablemente ocurra cuando la versión de su biblioteca de appcompat y la biblioteca de soporte de diseño no coincidan.

Ejemplo de condición coincidente

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

Tuve un error similar. Cuando uso

  

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

  

Intenta trabajar con un tema de aplicación muy simple para comenzar.

EDITAR:

Este tutorial te ayudará. Mi entendimiento es que usar “android: textColorPrimary” requiere un nivel mínimo de api 21. Usar la misma etiqueta sin “android:” utiliza la biblioteca de soporte de diseño. Cualquier widget de la biblioteca de soporte intentará encontrar el elemento “textColorPrimary” en lugar de “android: textColorPrimary” y si no lo encuentra arroja el error mencionado anteriormente.

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

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

Este es el problema principal.

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

  

Todavía puedes usar android:textColorPrimary y android:textColorSecondary en tu tema con este método.

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. Harta de eso.

Bueno, entonces estaba tratando de arreglar este error. Y ninguno funcionó para mí. No fui capaz de encontrar una solución. Guión:

Iba a hacer un Navigation Drawer Project dentro de Android Studio 2.1.2 Y cuando bash cambiar el ícono predeterminado de Android en nav_header_main.xml recibí algunos errores extraños. Descubrí que estaba perdiendo mi logotipo PNG en ...\app\src\main\res\drawable-21 . Cuando trato de poner mi logotipo PNG en ...\app\src\main\res\drawable bam! Todos los errores extraños desaparecen.

Los siguientes son algunos de los rastros de stack cuando estaba colocando PNG en la carpeta drawable-21 :

 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  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  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.(NavigationView.java:173) at android.support.design.widget.NavigationView.(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.(ImageView.java:120) at android.support.v7.widget.AppCompatImageView.(AppCompatImageView.java:57) at android.support.v7.widget.AppCompatImageView.(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 Stack Trace 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)

Ninguna de las correcciones anteriores funcionó para mí.

Lo que funcionó para mí fue cambiar

 #FFFFFF 

a

 @color/colorWhite 

Obviamente necesitas agregar colorWhite a tus colors.xml

Para mí, me encontré con este error muchas veces,

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

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

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!

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

Entonces, para su tema en styles.xml:

  

Y el archivo primary_color_statelist.xml real:

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

Seguir los pasos a continuación seguramente eliminará este error.

  • Encuentra el widget que causa el error.
  • Vaya al archivo de diseño donde se declara ese widget.
  • Verifique todos los recursos (dibujables, etc.) utilizados en ese archivo.
  • Luego, asegúrate de que ese recurso esté disponible en todas las versiones de los objetos dibujables (drawable-v21, dibujable, etc.)

¡¡Aclamaciones!!

Solo por quién aún llegar a este problema. Llegué al mismo problema, pero todas las soluciones aquí no funcionan para mí.

Solo toma alook en la clase NavigationView con cue de logcat, encontré el problema que viene de esta línea de código:

 itemTextColor = this.createDefaultColorStateList(16842806); 

Por lo tanto, parece estar 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, noto que hay ColorStateList. Entonces creo uno y luego configuro para itemTextColor y luego funciona.

     

Espero que ayude!

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 target en 21 o el más alto disponible, luego limpie el diseño lib, appcomapt y su proyecto y disfrute”

Espero que ayude!

Tuve el mismo problema después de actualizar la biblioteca de soporte y ninguna de las respuestas funcionó para mí. Finalmente solucioné la descarga de la última versión de las herramientas de comstackción y la actualización en build.gradle to buildToolsVersion "23.0.1"

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

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

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

Mejorado final trabajado 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 usar tanto el diseño como la actualización compacta.

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

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

  1. Este problema probablemente ocurrirá cuando la versión de su biblioteca de compatibilidad de aplicaciones y la biblioteca de soporte de diseño no coincidan. Ejemplo de condición coincidente

      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,

      #4A0958 #4A0958 

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

   

Asegúrate de que tus dibujables para el menú se encuentren en la carpeta correcta, míos donde pongo drawablev21, por lo tanto, esto provocó un nullpointer para el recurso.

Se arregló la compra de mover mis icons a la carpeta de drawables

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

  

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

  

a

  

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

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

  1. compruebe la causa de la stack y debería haber Resources$NotFoundException esta manera:
 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 realmente un entero exacto del archivo R.java generado.
  2. Encuentra 0x7f0b0066 que apuntará al archivo xml que no se pudo inflar (encontrar).
  3. En la mayoría de los casos, esto se debe a que el layout directorio no tiene este recurso, pero algo de layout-XXX tiene.
  4. Y la solución es poner recursos en todos los directorios requeridos. O al menos en el layout .