androide.vista.InflateException: Archivo XML binario línea #12: Error inflando clase


Estoy recibiendo muchos errores del tipo que se muestran en el subj. Estos errores parecen ser ocasionales y no puedo reproducirlos. De la pila puedo aprender que tal error puede ocurrir para mis diferentes recursos de diseño. La línea de XML también varía.

¿Puede alguien explicar por qué ocurre este error? ¿Y qué 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, este 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>
Author: Mark Adler, 2010-12-22

19 answers

La excepción inflar no es realmente el problema, pero realmente proviene de otro problema más profundo en su diseño que luego se envuelve en una excepción InflateException. Un problema común es una excepción de falta de memoria al intentar inflar una imageview cargando un recurso de diseño. Si uno de estos recursos tiene una alta resolución de píxeles que tomaría una gran cantidad de memoria causando entonces una excepción inflar.

Así que básicamente verifique que la resolución de píxeles en sus imágenes de elementos de diseño sean solo la mínima necesario para su diseño.

 235
Author: vnportnoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-26 21:47:33

ViewFlipper carga todas las imágenes en la memoria durante el diseño de inflado. Debido a que mis imágenes son grandes, toma mucha memoria, reemplacé ViewFlipper con ImageSwitcher que puede cambiar las imágenes con animación como ViewFlipper pero carga solo una imagen a la vez.

 24
Author: Solvek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-03 21:21:30

Esto también puede suceder si usa una VectorDrawable usando la biblioteca de soporte y olvidó usar app:srcCompat en lugar de android:src

El error exacto es: Línea de archivo XML binario # XX: Error al inflar la clase ImageView

Ver ese enlace

 16
Author: lujop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-09 14:07:41

Sé que la pregunta ya está respondida, pero todavía estoy publicando con el pensamiento de que alguien puede encontrarse con este tipo de problema.

En mi caso el problema es que estoy cargando mi aplicación al teléfono que se refieren a diseños de res/layout/ carpeta y valores para @dimens de res/values/dimens aquí es font_22 que está tratando de acceder y se define en res/values-xlarge/dimens.

En realidad estoy actualizando la interfaz de usuario del proyecto existente.

Me encontré con este problema porque estoy usando IDE Eclipse donde ctrl + espacio para pista mientras se escribe xml para la carpeta de diseño que muestra todos los valores de los valores, así como valores-xlarge carpeta independientemente de la carpeta para la que estoy escribiendo.

También sé que los valores en ambos archivos deben ser los mismos para asignar a diferentes pantallas.

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

 9
Author: MobileEvangelist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-03 12:03:39

Mi tamaño de imagen es de solo 14 Kb, pero el problema es que el diseñador me dio 1011px x 1819px (resolución demasiado alta, por lo tanto, causando la excepción de InflateException)

 5
Author: Han Heong Ho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-02 12:34:13

Tuve el mismo error al crear una vista personalizada con un solo constructor, intente definir todos los constructores 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();
    }
 5
Author: Wildan Muhlis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-21 01:50:12

Este enlace puede ayudarte. Trate de comprobar en su manifiesto de problemas. Si puede hacer que vuelva a suceder, publique todo el seguimiento de la pila para que podamos ver cuál es el error en realidad.

EDIT: Estoy seguro de que has comprobado esto, pero ¿qué hay en la línea 12 del archivo XML que utilizas para el diseño de TourActivity?

 4
Author: kcoppock,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:59

Me encontré con el mismo error y encontré que la razón raíz es:

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

Inflar con Contexto de Actividad solucionó el error.

 4
Author: cox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-09 04:08:26

Tuve este error porque seleccioné el tema como tema Material. Pero como estaba tratando de ejecutar la aplicación en 4.4.2 dio este error.

Solución: Seleccione Theme_holo como tema

 4
Author: Lakhwinder Singh Dhillon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-03 18:56:24

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

(En el mensaje de error log cat, decía que el error ocurrió al inflar un diseño específico en mi HomeFragment.java)

  1. Puse un punto de interrupción 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 interrupción específico
  3. Seleccioné la línea con mi cursor y corrí Evaluate expression sobre ella:
    • 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 de diseño usando tools:targetApi="lollipop" (el error solo ocurrió en dispositivos más antiguos).
 3
Author: Julian Honma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-09 12:05:14

En caso de que alguien tenga problemas similares, tuve un problema mientras inflaba la vista:

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

Fijado sustituyendo getApplicationContext por this

 3
Author: hedisam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-31 15:05:16

Tuve el mismo error y resolví mover mis elementos de diseño de la carpeta drawable-mdpi a la carpeta drawable. Me tomó algún tiempo darme cuenta porque en Eclipse todo funcionó perfectamente mientras que en Android Studio obtuve estos horribles errores de tiempo de ejecución.

Nota de edición: 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 difieren un poco de eclipse.

 2
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-03 20:24:23

Acabo de tener este problema y me las arreglé para averiguar 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ó!

 1
Author: Jonathan Laliberte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-20 19:08:36

En mi caso,este error ocurre cuando uso el botón de acción flotante y establezco android:backgroundTint="#000". Entonces simplemente no establezca backgroundTint y problema resuelto. Espero que sea útil para usted.

 1
Author: Luan Si Ho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-05 13:00:10

Encontré el mismo error, y me tomó dos días identificar cuál era el error.

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

En lugar de: app:srcCompat

En un archivo SVG.

En su 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 !
 />

Espero que esto ayude.

 0
Author: Williaan Lopes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-25 20:19:11

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

  1. Etiqueta de diseño incorrecta en XML
  2. Carga de recursos pesados directamente en ImageView resultando en OOM
  3. Problemas con el uso de estilos.

Uno de los factores más ignorados puede ser el uso del Contexto correcto mientras se inflan las vistas. Compruebe que no está utilizando ApplicationContext donde se requiere un contexto de actividad. Mientras que, ApplicationContext puede no terminar en error siempre, pero dependiendo de su jerarquía de vista puede ser crucial.

He resuelto mi problema con un MAL contexto (usando ApplicationContext en lugar de Actividad en un lapso de 4 días! Así que inténtalo si eso se resuelve. ¡Feliz Programación!!

 0
Author: sud007,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-04 10:48:08

Me había enfrentado al mismo problema, había utilizado la etiqueta view en xml en lugar de View. Reemplazar para ver la clase solucionó el problema.

Espero que te ayude a ti también..

 0
Author: Kavya Shravan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-23 06:55:40

Necesitamos comprobar la versión de la API. Solía darle 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>

Seguro que tuve el mismo error, as_royalblue.xml dentro de la carpeta drawable

<?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 cómo lo arreglé, en realidad parece un problema de la Api, por lo que necesitamos verificar el nivel de API si está por encima de la API 24 para que podamos usar la forma que nos gusta. Pero si es menor de 24 tenemos que evitar el uso, sobresale dar un color normal o un color no color gradencial mezclado uno.

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

Dar id a su linearlayouts y establecer fondos si está bien

 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}
 0
Author: Sam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-24 14:12:55

Sé que es una pregunta contestada, pero no veo la causa a la que me enfrenté.

Fue que Android Studio colocó mis elementos de diseño en / drawable-V24 Mi emulador es API 23. Por lo tanto, con el tiempo no puede encontrarlo.

La solución fue mover todos los elementos de diseño a la carpeta /drawable (no -24).

 0
Author: alsaleem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-24 16:24:37