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.
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' }
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } }
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!
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:
Seguir los pasos a continuación seguramente eliminará este error.
¡¡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.
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
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
:
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)
Resource ID
es realmente un entero exacto del archivo R.java generado. 0x7f0b0066
que apuntará al archivo xml que no se pudo inflar (encontrar). layout
directorio no tiene este recurso, pero algo de layout-XXX
tiene. layout
.