Android: ¿Cómo rastrear el origen de una InflateException?

Al iniciar mi aplicación, obtengo la siguiente advertencia en Logcat:

04-09 10:28:17.830: WARN/WindowManager(52): Exception when adding starting window 04-09 10:28:17.830: WARN/WindowManager(52): android.view.InflateException: Binary XML file line #24: Error inflating class <unknown> 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.createView(LayoutInflater.java:513) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.inflate(LayoutInflater.java:385) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2153) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2207) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.java:1395) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.internal.policy.impl.PhoneWindowManager.addStartingWindow(PhoneWindowManager.java:818) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.server.WindowManagerService$H.handleMessage(WindowManagerService.java:8794) 04-09 10:28:17.830: WARN/WindowManager(52): at android.os.Handler.dispatchMessage(Handler.java:99) 04-09 10:28:17.830: WARN/WindowManager(52): at android.os.Looper.loop(Looper.java:123) 04-09 10:28:17.830: WARN/WindowManager(52): at com.android.server.WindowManagerService$WMThread.run(WindowManagerService.java:531) 04-09 10:28:17.830: WARN/WindowManager(52): Caused by: java.lang.reflect.InvocationTargetException 04-09 10:28:17.830: WARN/WindowManager(52): at android.widget.FrameLayout.<init>(FrameLayout.java:79) 04-09 10:28:17.830: WARN/WindowManager(52): at java.lang.reflect.Constructor.constructNative(Native Method) 04-09 10:28:17.830: WARN/WindowManager(52): at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 04-09 10:28:17.830: WARN/WindowManager(52): at android.view.LayoutInflater.createView(LayoutInflater.java:500) 04-09 10:28:17.830: WARN/WindowManager(52): ... 13 more 04-09 10:28:17.830: WARN/WindowManager(52): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x1010059 a=-1} 04-09 10:28:17.830: WARN/WindowManager(52): at android.content.res.Resources.loadDrawable(Resources.java:1677) 04-09 10:28:17.830: WARN/WindowManager(52): at android.content.res.TypedArray.getDrawable(TypedArray.java:548) 04-09 10:28:17.830: WARN/WindowManager(52): at android.widget.FrameLayout.<init>(FrameLayout.java:91) 04-09 10:28:17.830: WARN/WindowManager(52): ... 17 more 

Mi aplicación comienza con la siguiente pantalla de bienvenida:

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:windowBackground="@color/white" android:background="@color/white" android:layout_width="fill_parent" android:layout_height="fill_parent" android:foregroundGravity="center"> <ImageView android:id="@+id/ImageView01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:adjustViewBounds="true" android:scaleType="centerInside" android:src="@drawable/splash" android:layout_gravity="center" /> </ScrollView> 

Splash es la imagen que se muestra en la pantalla de bienvenida. Tengo las cuatro carpetas con para almacenar drawables en mi aplicación:

/ Res / drawable-hdpi
/ Res / drawable-ldpi
/ Res / drawable-mdpi
/ Res / drawable-nodpi

La imagen de bienvenida tiene su propia versión en los tres primeros y se muestra correctamente. Quitar la propiedad src de ImageView elimina la imagen pero no la excepción.

Estoy un poco perdido con dónde buscar la causa de la excepción. Incluso no sé si esto es realmente un problema en este archivo de diseño, etc

¿Cómo buscaría la causa de esta advertencia?

Tuve el mismo error exacto. La única línea xml 24 que tenía sentido era mi manifiesto de aplicación que resultó ser la etiqueta de cierre para la aplicación. Lo rastreé hasta mi tema personalizado que estaba agregando para la aplicación – no estaba definiendo el padre del estilo. Todo lo que necesitaba hacer era añadir parent = "android: Theme" a mi estilo y mi error se fue.

 <style name="MyTheme" parent="android:Theme"> ... </style> 
 04-09 10:28:17.830: WARN/WindowManager(52): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x2/d=0x1010059 a=-1 

Esa línea es el regalo. El sistema no está contento con uno de tus recursos, probablemente un recurso 'src', probablemente android:src="@drawable/splash" .

Conseguí un error similar al funcionar en un emulador 2.0. He utilizado una versión más reciente de la API (versión 7, 2.1-update1) y funcionó.

Tuve el mismo problema y fue porque pasé el contexto de la aplicación en lugar del contexto de la actividad.

El error está en la línea 24 de su archivo XML. ¿Qué contiene esa línea? Por la apariencia del mensaje de error

 android.view.InflateException: Binary XML file line #24: Error inflating class <unknown> 

Está utilizando una clase personalizada y no ha definido algo correctamente. Por ejemplo, ¿definió el nombre del paquete correctamente? Tal vez su constructor no está formateado? Tendríamos que ver el archivo XML, específicamente lo que hay alrededor de la línea 24, para poder dar más información.

Sé que esto es un poco tarde, pero pasé todo el día tratando de averiguar esto y finalmente con la ayuda de esta pregunta tan me di cuenta de un archivo XML en el ejemplo que estaba probando estaba utilizando una característica de una API más tarde y Lint wasn No la captura porque el archivo no había cambiado. Tan pronto como hice una edición aleatoria en el archivo XML y guardé el archivo, entonces el error sobre una API más tarde apareció.

  • ¿Cómo uso el depurador de Eclipse en un AsyncTask cuando se desarrolla para Android?
  • ¿Es posible detectar la depuración USB en los dispositivos Android?
  • Nexus 7 no es recogido por adb (cuando lo conecto a la computadora portátil a través de usb)
  • Los puntos de interrupción no funcionan al depurar la biblioteca nativa de Android en Visual Studio 2015
  • Cómo emular un navegador móvil (android) en el escritorio
  • ¿No se puede volver a crear el almacén de claves de depuración faltante?
  • Cromo inspeccionar parpadeo con depuración remota
  • Depuración USB no funciona, adb ignora Nexus 7
  • El depurador androide no se detiene en puntos de interrupción
  • Android Native debug (ndk-gdb) en HTC Desire: run-as defecto?
  • Cómo ver la salida del registro de consola en la galaxia S2 de Samsung
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.