android.widok.InflateException: Binary XML file line #12: Error inflating class

Otrzymuję wiele błędów rodzaju wyświetlane w subj. Te błędy wydają się być sporadyczne i nie mogę ich odtworzyć. Ze stosu mogę dowiedzieć się, że taki błąd może wystąpić dla moich różnych zasobów układu. Linia XML jest również różna.

Czy ktoś może wyjaśnić, dlaczego ten błąd występuje? I co mogę zrobić, aby rozwiązać ten problem?

Stos

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

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)

Tutaj jest wynikiem XML, jednak taki błąd występuje w innych xmlach

<?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

Wyjątek inflate nie jest w rzeczywistości problemem, ale tak naprawdę pochodzi z innego głębszego problemu w układzie, który jest następnie owinięty w InflateException. Częstym problemem jest wyjątek out of memory podczas próby napompowania widoku imageview ładującego zasób dający się narysować. Jeśli jeden z tych zasobów ma wysoką rozdzielczość pikseli, zajęłoby to dużo pamięci, powodując nadmuchanie wyjątku.

Więc zasadniczo sprawdź, czy rozdzielczość pikseli w obrazach rysunkowych jest tylko minimalna niezbędne dla Twojego układu.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-26 21:47:33

ViewFlipper ładuje wszystkie obrazy do pamięci podczas nadmuchiwania układu. Ponieważ moje obrazy są duże, zajmuje to wiele pamięci, zamieniłem ViewFlipper na ImageSwitcher, które mogą zmieniać obrazy za pomocą animacji, jak ViewFlipper, ale ładuje tylko jeden obraz w tym czasie.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-03 21:21:30

Może się to również zdarzyć, jeśli użyjesz VectorDrawable używając biblioteki wsparcia i zapomnisz użyć app:srcCompat zamiast android:src

Dokładny błąd to: Binary XML file line # XX: Error inflating class ImageView

Zobacz ten link

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-09 14:07:41

Wiem, że pytanie jest już odpowiedział, ale nadal zamieszczam z myślą, że może ktoś natknąć się na tego rodzaju problem.

W moim przypadku problem polega na tym, że Ładuję aplikację na telefon, która odwołuje się do układów z folderu res/ layout/i wartości dla @dimens z res/values/dimens tutaj jest to font_22 do którego próbuje uzyskać dostęp i jest definiowana w res/values-xlarge / dimens.

Aktualizuję UI istniejącego projektu.

Napotkałem ten problem, ponieważ używam IDE Eclipse gdzie ctrl + Spacja dla podpowiedzi podczas pisania XML dla folderu layout wyświetla wszystkie wartości z folderu values oraz values-XLarge niezależnie od tego dla którego folderu piszę.

Wiem również, że wartości w obu plikach powinny być takie same, aby odwzorować je dla różnych ekranów.

Mam nadzieję, że to może pomóc komuś w takim głupim problemie.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-03 12:03:39

Mój rozmiar zdjęcia to tylko 14kb, ale problem w tym, że projektant dał mi 1011PX x 1819px (rozdzielczość zbyt wysoka, co powoduje nadmuchanie)

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-02 12:34:13

Miałem ten sam błąd podczas tworzenia niestandardowego widoku z tylko jednym konstruktorem, spróbuj zdefiniować wszystkie konstruktory dla swoich niestandardowych widoków.

   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/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-21 01:50:12

Ten link może Ci pomóc. Spróbuj sprawdzić w swoim manifeście dla problemów. Jeśli możesz sprawić, że stanie się to ponownie, Opublikuj cały ślad stosu, abyśmy mogli zobaczyć, jaki jest błąd.

EDIT: jestem pewien, że to sprawdziłeś, ale co jest w linii 12 pliku XML, którego używasz do układu 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/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:59

Napotkałem ten sam błąd i znalazłem główny powód:

Użyj kontekstu aplikacji do nadmuchiwania widoku.

Nadmuchiwanie kontekstu aktywności naprawiło błąd.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-09 04:08:26

Miałem ten błąd, ponieważ wybrałem motyw jako temat materialny. Ale jak próbowałem uruchomić aplikację na 4.4.2 dał ten błąd.

Rozwiązanie: Wybierz Theme_holo jako theme

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-03 18:56:24

Dla mnie komunikat o błędzie był niewystarczający w log cat, więc oto, co zrobiłem, aby dowiedzieć się, co spowodowało problem:

(w komunikacie błędu log cat napisano, że błąd wystąpił podczas nadmuchiwania określonego układu w moim HomeFragment.java)

  1. ustawiłem punkt przerwania tuż przed napompowaniem układu
  2. uruchomiłem aplikację w trybie debugowania, dopóki nie osiągnęła określonego punktu przerwania
  3. wybrałem linię kursorem i uruchomiłem Evaluate expression na niej:
    • Run > Evaluate Expression lub alt - F8
  4. wynik pokazał mi więcej informacji o źródle problemu, którym w moim przypadku był plik drawable przy użyciu tools:targetApi="lollipop" (błąd wystąpił tylko na starszych urządzeniach).
 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/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-09 12:05:14

Jakby ktoś miał podobne problemy, to miałem taki problem przy nadmuchiwaniu widoku:

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

Naprawiono przez zastąpienie getApplicationContext przez 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/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-31 15:05:16

Miałem ten sam błąd i rozwiązałem przenoszenie moich rysunków z folderu drawable-mdpi do folderu drawable. Zajęło mi trochę czasu, aby uświadomić sobie, ponieważ w Eclipse wszystko działało idealnie, podczas gdy w Android Studio mam te brzydkie błędy uruchomieniowe.

Edit note: Jeśli migrujesz z eclipse do Android Studio i twój projekt pochodzi z eclipse to może się zdarzyć, więc uważaj, że w Android Studio rzeczy trochę różni się od 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/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-03 20:24:23

Miałem ten problem przed chwilą i udało mi się dowiedzieć, co to jest. Odnosiłem się do koloru w moich wartościach, który sprawiał problemy. Tak zdefiniowano go ręcznie zamiast używać jednego z rozwijanych sugestii.Potem zadziałało!

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-20 19:08:36

W moim przypadku ten błąd występuje, gdy używam pływającego przycisku akcji i ustawiam android:backgroundTint="#000". Więc po prostu nie ustawiaj backgroundTint i problem rozwiązany. Mam nadzieję, że to ci pomoże.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-05 13:00:10

Znalazłem ten sam błąd, i zajęło dwa dni, aby zidentyfikować, co to był błąd.

Błąd był po prostu dlatego, że próbowałem użyć jednego: android:background

Zamiast: app:srcCompat

W pliku SVG.

W Twoim przypadku, wierzę, że to jest to

<ImageView 
    android:scaleType="fitXY" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/tour_11"      <-- the error is here !
 />
Mam nadzieję, że to pomoże.
 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/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-25 20:19:11

Też miałem do czynienia z podobnym problemem. Podczas gdy dla każdego może to być problem różnych złych zastosowań w kodzie, takich jak

  1. Wrong Layout tag in XML
  2. załadowanie ciężkiego zasobu bezpośrednio do ImageView w wyniku OOM
  3. Problemy z używaniem stylów.

Jednym z najczęściej ignorowanych czynników może być użycie poprawnego kontekstu podczas zawyżania widoków. Sprawdź, czy nie używasz ApplicationContext, gdzie wymagany jest kontekst aktywności. Podczas gdy ApplicationContext może nie zawsze skończyć się błędem, ale w zależności od twojej hierarchii widoków może to być kluczowe.

Rozwiązałem problem ze złym kontekstem (używając ApplicationContext zamiast Activity w ciągu 4 dni! Więc spróbuj, jeśli to rozwiąże. Szczęśliwego Kodowania!!

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-04 10:48:08

Miałem do czynienia z tym samym problemem, użyłem znacznika widoku w xml zamiast widoku. Zastąpienie klasy View rozwiązało problem.

Mam nadzieję, że tobie też pomoże..

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-23 06:55:40

Musimy sprawdzić wersję API. Kiedyś podawałem kolor tła do mojego LinearLayout Jak

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

Na pewno miałem ten sam błąd, as_royalblue.xml w drawable folderze

<?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>

I jak to naprawiłem , właściwie wydaje się to problemem Api, więc musimy sprawdzić poziom api, jeśli jest powyżej API 24, więc jesteśmy w stanie korzystać tak, jak lubimy. Ale jeśli jest poniżej 24 musimy unikać użycia, juty dają normalny kolor lub jeden kolor nie gradencjalny mieszany.

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

Give id to your linearlayouts i Ustaw tła, jeśli jest 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}
 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/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-24 14:12:55

Wiem, że to odpowiedź na pytanie, ale nie widzę przyczyny, z którą się spotkałem.

To było to, że Android Studio umieściło moje drawables w /drawable-V24 Mój emulator to API 23. Tak więc w końcu nie może go znaleźć.

Rozwiązaniem było przeniesienie wszystkich drawables do folderu / 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/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-24 16:24:37