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:
- ¿Puede depurar PhoneGap usando Eclipse?
- No se puede depurar la aplicación en el dispositivo Android - Android Studio 2.0
- Adb no puede detectar Sony Xperia s aunque he instalado el controlador
- ¿Cómo depurar correctamente Java (Android) usando Eclipse?
- Asmack - recibir mensajes XML personalizados ||
<?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?
- BubblePopupHelper que llena el registro de depuración de Android
- Alternativa de Android a MetroGridHelper
- ¿Cómo puedo depurar javascript en Android?
- ¿Puede Android Emulator recoger audio?
- Cómo depurar con aplicaciones ofuscadas (con ProGuard) en Android?
- Cambiar valores constantes al crear una edición de lanzamiento
- ¿Por qué GDB "salta hacia atrás" al depurar con c códigos fuente
- Ver pila de actividades en Android
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ó.
- "Necesita usar un tema Theme.Appcompat …" al probar ActionBarActivity, pero estoy
- ¿Cómo funciona el método getView () de ArrayAdapter?