android.vista.InflateException:Binario archivo XML de la línea #12:Error inflar clase <unknown>

StackOverflow https://stackoverflow.com/questions/4512981

Pregunta

Estoy recibiendo muchos errores de tipo se muestra en la subj.Estos errores parece ser ocasional y no puedo reproducirlos.De la pila puedo aprender que tal error se produce por mi diseño diferente de los recursos.La línea de XML es también variable.

¿Alguien puede explicar por qué se produce este error?Y lo que puedo hacer para solucionar este problema?

Pila

=============================================================

com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------

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

1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. android.view.LayoutInflater.inflate(LayoutInflater.java:382)
7. android.view.LayoutInflater.inflate(LayoutInflater.java:320)
8. android.view.LayoutInflater.inflate(LayoutInflater.java:276)
9. com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:208)
10. android.app.Activity.setContentView(Activity.java:1629)
11. com.solvek.sample.ui.BaseActivity.onCreate(BaseActivity.java:23)
12. com.solvek.sample.ui.tour.TourActivity.onCreate(TourActivity.java:161)
13. android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
14. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2587)
15. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
16. android.app.ActivityThread.access$2200(ActivityThread.java:131)
17. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
18. android.os.Handler.dispatchMessage(Handler.java:99)
19. android.os.Looper.loop(Looper.java:123)
20. android.app.ActivityThread.main(ActivityThread.java:4702)
21. java.lang.reflect.Method.invokeNative(Native Method)
22. java.lang.reflect.Method.invoke(Method.java:521)
23. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
24. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
25. dalvik.system.NativeStart.main(Native Method)
-----------------------------

-------- Environment --------
Time =2010-12-20 08:27:35 AM
Device =tmobile/htc_espresso/espresso/espresso:2.1-update1/ERE27/216830:user/release-keys
Make =HTC
Model =T-Mobile myTouch 3G Slide
Product =htc_espresso
App =com.fsp.android.f, version 2.0.9 (build 1232)

Aquí es un resultado de XML, sin embargo, dicho error se produce en otros xmls

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <ViewFlipper android:layout_gravity="fill" android:id="@+id/flipper" android:layout_height="fill_parent" android:layout_width="fill_parent">
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_1"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_2"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_3"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_4"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_5"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_6"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_7"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_8"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_9"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_10"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_11"/>
    </ViewFlipper>

    <LinearLayout android:id="@+id/exit_bar" android:layout_gravity="top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <Button android:background="@drawable/orange_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textStyle="bold" android:textColor="#000000" android:shadowColor="#ffffff" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3" android:id="@+id/exit_tour_btn" android:text="Exit" android:layout_marginLeft="20dip"/>
        <TextView android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_gravity="center" android:layout_width="110dip" android:layout_marginLeft="20dip" android:textSize="16dip" android:textStyle="bold" android:text="Life360 Tour"/>

    </LinearLayout>

    <Button style="@style/BlueBtn" android:text="Continue" android:layout_marginTop="40dip" android:id="@+id/continue_btn" android:visibility="gone" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" />

    <FrameLayout android:id="@+id/bottom_bar" android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/left" android:layout_gravity="left|center" android:background="@drawable/tour_left" android:layout_marginLeft="10dip"/>
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/right" android:layout_gravity="right|center" android:background="@drawable/tour_right" android:layout_marginRight="10dip"/>               
    </FrameLayout>
</merge>
¿Fue útil?

Solución

La excepción de inflado no es en realidad el problema, pero realmente proviene de otro problema más profundo en su diseño que luego se envuelve en una InflateException. Un problema común es una excepción fuera de memoria al intentar inflar una vista de imagen que carga un recurso dibujable. Si uno de estos recursos tiene una resolución de píxeles altas, se necesitaría mucha memoria que causa una excepción de inflar.

Por lo tanto, verifique básicamente que la resolución de píxeles en sus imágenes de dibujo sea el mínimo necesario para su diseño.

Otros consejos

ViewFlipper Carga todas las imágenes en la memoria durante el diseño que se infla. Debido a que mis imágenes son grandes, se necesitan mucha memoria, reemplazé ViewFlipper con ImageSwitcher que puede cambiar las imágenes con animación como ViewFlipper Pero solo carga una imagen en ese momento.

Esto también puede suceder si usa un VectorDrawable Uso de la biblioteca de soporte y olvidé usar app:srcCompat en vez de android:src

El error exacto es: Línea de archivo XML binaria #XX: Error en inflando la clase ImageView

Ver ese enlace

Sé que la pregunta ya está respondida, pero aún estoy publicando con pensamiento que alguien se encuentre con este tipo de problema.

En mi caso, el problema es cargar mi aplicación al teléfono que refería diseños de res/diseño/carpeta y valores para @dimens de res/valores/dimens aquí es font_22 a la que está tratando de acceder y se define en res/valores-xlarge /Dimens.

De hecho, estoy actualizando la interfaz de usuario del proyecto existente.

Me encontré con este problema porque estoy usando IDE Eclipse donde Ctrl+espacio para sugerir mientras escribo XML para la carpeta de diseño, muestra todos los valores de valores, así como la carpeta valores-xLarge, independientemente de la carpeta que estoy escribiendo.

También sé que los valores en ambos archivos deberían ser los mismos para mapear para diferentes pantallas.

Espero que esto pueda ayudar a alguien a encontrarse con este tipo de problema tonto.

Tuve el mismo error al crear una vista personalizada con un solo constructor, intente definir todo el constructor para sus vistas personalizadas.

   public CustomWebView(Context context) {
        super(context);
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

Encontré el mismo error y descubrí que la razón raíz es:

Use el contexto de aplicación para inflar la vista.

Inflar con el contexto de actividad corrigió el error.

Tuve este error porque seleccioné el tema como tema de material. Pero mientras intentaba ejecutar la aplicación en 4.4.2, dio este error.

Solución: seleccione theme_holo como tema

El tamaño de mi imagen es solo de 14 kb, pero el problema es que el diseñador me dio 1011px x 1819px (resolución demasiado alta y, por lo tanto, causa la conexión inflateException)

En caso de que alguien tenga problemas similares, tuve ese problema al inflar la opinión:

View.inflate(getApplicationContext(), R.layout.my_layout, null)

fijado al reemplazar getApplicationContext() con this

Este enlace puede ayudarte. Intente verificar su manifiesto para obtener problemas. Si puede hacer que vuelva a suceder, publique todo su traza de pila para que podamos ver cuál es realmente el error.

EDITAR: Estoy seguro de que ha revisado esto, pero ¿qué está en la línea 12 del archivo XML que usa para el diseño de TourActivity?

Para mí, el mensaje de error era en realidad insuficiente en el registro gato, así que esto es lo que hice para descubrir qué causó el problema:

(En el mensaje de error de registro de registro, dijo que el error ocurrió al inflar un diseño específico en mi homefragment.java)

  1. Puse un punto de ruptura justo antes de que el diseño se inflara
  2. Ejecuté la aplicación en modo de depuración hasta que alcanzó ese punto de ruptura específico
  3. Seleccioné la línea con mi cursor y corrí Evaluate expression en eso:
    • Run > Evaluate Expression o alt - F8
  4. El resultado me mostró más información sobre la fuente del problema, que en mi caso era un archivo dibujable que usaba tools:targetApi="lollipop" (El error solo ocurrió en dispositivos más antiguos).

Sé que es una pregunta respondida, pero no veo la causa que enfrenté.

Fue que Android Studio colocó mis dibujos en /Drawable-V24 Mi emulador es API 23. Entonces, eventualmente no puede encontrarlo.

La solución fue mover todos los dibujables a la carpeta /dibujo (no -24).

Debe copiar los archivos de imagen de la carpeta "Drawable-24" a la carpeta "Drawable".

Tuve el mismo error y resolví moviendo mis dibujables de la carpeta Drawable-MDPI a la carpeta Drawable. Me tomó algo de tiempo para darme cuenta porque en Eclipse todo funcionó perfectamente mientras en Android Studio obtuve estos feas errores de tiempo de ejecución.

Editar nota: Si está migrando de Eclipse a Android Studio y su proyecto proviene de Eclipse, puede suceder, así que tenga cuidado de que en Android Studio las cosas difieran un poco de Eclipse.

En mi caso, este error ocurre cuando uso el Botón de acción flotante y establecer android:backgroundTint="#000". Entonces no te quedes backgroundTint y problema resuelto. Espero que sea útil para ti.

Tuve este problema en este momento y logré descubrir qué era. Estaba haciendo referencia a un color en mis valores que estaba causando problemas. Así que lo definió manualmente en lugar de usar uno de las sugerencias desplegables. ¡Entonces funcionó!

Tuve el mismo error cuando ejecuté mi aplicación en API LVL 16 (26 estaba bien). Fue porque usé ?attrr/colorAccent en mi forma dibujable:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="8dp" />

    <solid android:color="@attr/colorAccent" />

</shape>

Reemplazar eso con un color regular solucionó mi problema.

Tuve el mismo problema y se resolvió eliminando Drawable-V24 con (24) delante de las imágenes en la carpeta Drawable y reemplazándolas con Drawables ordinarios.

Sé que este hilo es viejo, pero aún lo responde para que nadie más no pase noches de insomnio.

Estaba refactorando un proyecto antiguo, cuyos archivos de diseño contenían atributos codificados como android:maxLength = 500. Así que decidí registrarlo en mires/dimen archivo como <dimen name="max_length">500</dimen>.

Terminado de refactorizar casi 30 archivos de diseño con mi valor de res. ¿Adivina qué? La próxima vez que ejecuté mi proyecto comenzó a lanzar lo mismo InflateException.

Como solución, necesaria para rehacer todos mis cambios y mantener todos los valores de los mismos que antes.

TLDR;

Paso 1: Todos corriendo bien.

Paso 2: Para aumentar mi mantenimiento, reemplacé android:maxLength = 500 con <dimen name="max_length">500</dimen> y android:maxLength = @dimen/max_length , ahí es donde todo salió mal (chocando con InflateException).

Paso 3: todos corriendo mal

Paso 4: Vuelva a hacer todo mi trabajo reemplazando nuevamente android:maxLength = @dimen/max_length con android:maxLength = 500. Todo se solucionó.

Paso 5: Todos corriendo bien.

Encontré el mismo error, y tardó dos días en identificar cuál fue el error.

El error fue simplemente porque estaba tratando de usar uno: android:background

Más bien que: app:srcCompat

En un archivo SVG.

En tu caso, creo que esto es todo

<ImageView 
    android:scaleType="fitXY" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/tour_11"      <-- the error is here !
 />

Recomiendo usarlo de esta manera

<androidx.appcompat.widget.AppCompatImageView  <-- use **AppCompatImageView** not **ImageView**
        android:scaleType="fitXY" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        app:srcCompat="@drawable/tour_11"
     />

Espero que esto ayude.

Yo también enfrentó a un problema similar.Mientras que para cualquier persona esto puede ser un problema de varios malos usos en el Código, tales como

  1. Mal Diseño de la etiqueta en XML
  2. La carga de la pesada de recursos directamente en ImageView resultante en OOM
  3. Problemas con el uso de estilos.

Uno de los más ignorados factor que puede ser el uso de Contexto correcto mientras inflar vistas.Por favor, asegúrese de que no está utilizando ApplicationContext donde una Actividad en contexto.Mientras que, ApplicationContext no puede terminar para arriba en el error de siempre, pero según tu punto de vista de la jerarquía puede ser crucial.

He resuelto mi problema con un MAL contexto (uso de ApplicationContext en lugar de La actividad en un lapso de 4 días!Para probar si se soluciona.Feliz Codificación!!

Me había enfrentado el mismo problema, había usado la etiqueta View en XML en lugar de la vista. Reemplazar para ver la clase solucionó el problema.

Espero que también te ayude ...

Debemos revisar la Versión de la API.He utilizado para dar color de fondo a mi LinearLayout como

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/as_royalblue"
        android:orientation="vertical"></LinearLayout>

para asegurarse de que tenía el mismo error, as_royalblue.xml dentro de drawable carpeta

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="90"
        android:endColor="@color/royalblue_s"
        android:startColor="@color/royalblue_e" />
</shape>

y como me fijo, que , en realidad parece Api problema, por lo que necesita para comprobar el nivel de la api si está por encima de la API de 24 de modo que son capaces de utilizar de la manera que nos gusta.Pero si es de menos de 24 tenemos que evitar el uso, se proyecta dar un color normal o uno de color de color gradential mixto.

fun checkAPI_N(): Boolean {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N)
            return true
        else
            return false
    }

dar identificador de linearlayouts y establecer fondos de si sus ok

 if(UtilKotlin.checkAPI_N()){
            linlay_act_menu_container.setBackgroundResource(R.drawable.a_6)
            linlay_act_menu_logo.setBackgroundResource(R.drawable.as_strain)
        }else {//todo normal color background setting}

En mi caso, tengo que especificar el nombre completo del paquete del componente de interfaz de usuario de la biblioteca que uso en mi archivo de diseño.

Para mí sucedió porque intenté mezclar imágenes de gráficos vectoriales XML con PNG ordinario en el mismo archivo de diseño,

Solo después de reemplazar los gráficos de vectores XML con PNG, comenzó a funcionar

  • Simplemente resuelvo este problema, simplemente elimine sus imágenes de Drawable (V24) y solo lo pego en la carpeta Drawable, esto funciona para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top