android.view.InflateException: Binaire XML-bestandsregel #12: Fout bij het opblazen van klasse <unknown>

Ik ontvang veel fouten die worden weergegeven in de subj. Deze fouten lijken incidenteel te zijn en ik kan ze niet reproduceren. Van stapel kan ik leren dat een dergelijke fout kan optreden voor mijn verschillende lay-outbronnen. De lijn van XML varieert ook.

Kan iemand uitleggen waarom deze fout optreedt? En wat kan ik doen om dit probleem op te lossen?

Stapel

=============================================================
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)

Hier is een resultaat van XML, maar een dergelijke fout treedt op in andere XML’s

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

Antwoord 1, autoriteit 100%

De inflate-uitzondering is eigenlijk niet het probleem, maar komt echt van een ander dieper probleem in uw lay-out dat vervolgens wordt verpakt in een InflateException.
Een veelvoorkomend probleem is een uitzondering op het geheugen wanneer u probeert een ImageViewop te blazen die een tekenbare bron laadt. Als een van deze bronnen een hoge pixelresolutie heeft, zou dit veel geheugen kosten, waardoor er een opgeblazen uitzondering ontstaat.

Controleer dus in principe of de pixelresolutie in al uw tekenbare afbeeldingen het minimum is dat nodig is voor uw lay-out.


Antwoord 2, autoriteit 10%

Dit kan ook gebeuren als u een VectorDrawablegebruikt met ondersteuningsbibliotheek en vergeten app:srcCompatte gebruiken in plaats van android:src

Exacte fout is:
Binaire XML-bestandsregel #XX: fout bij het opblazen van klasse ImageView

Zie die link


Antwoord 3, autoriteit 9%

ViewFlipperlaadt alle afbeeldingen in het geheugen tijdens het opblazen van de lay-out. Omdat mijn afbeeldingen groot zijn, kost het veel geheugen, ik heb ViewFlippervervangen door ImageSwitcherdie de afbeeldingen kan veranderen met animatie zoals ViewFlippermaar het laadt er maar één afbeelding op dat moment.


Antwoord 4, autoriteit 5%

Ik had dezelfde fout bij het maken van een aangepaste weergave met slechts één constructor, probeer alle constructors voor uw aangepaste weergaven te definiëren.

  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();
    }

Antwoord 5, autoriteit 4%

Ik weet dat de vraag al beantwoord is, maar toch post ik met de gedachte dat iemand tegen dit soort problemen kan aanlopen.

In mijn geval is het probleem dat ik mijn applicatie naar de telefoon laad die naar lay-outs verwijst vanuit res/layout/ map en waarden voor @dimens vanuit res/values/dimens hier is het font_22 waartoe het toegang probeert te krijgen en het is gedefinieerd in res/ waarden-xlarge/dimens.

Ik ben eigenlijk de gebruikersinterface van een bestaand project aan het updaten.

Ik kwam dit probleem tegen omdat ik IDE Eclipse gebruik, waarbij ik ctrl+spatie voor hint gebruik terwijl ik xml schrijf voor de lay-outmap. Het geeft alle waarden weer van de waarden en de map values-xlarge, ongeacht voor welke map ik schrijf .

Ik weet ook dat de waarden in beide bestanden hetzelfde moeten zijn om te worden toegewezen aan verschillende schermen.

Ik hoop dat dit iemand kan helpen om tegen dit soort dwaze problemen aan te lopen.


Antwoord 6, autoriteit 4%

Ik kwam dezelfde bug tegen en ontdekte dat de hoofdreden is:

Gebruik applicatiecontext om de weergave op te blazen.

Opblazen met Activiteitscontext loste de bug op.


Antwoord 7, autoriteit 3%

Ik heb dezelfde fout gevonden en het duurde twee dagen om te achterhalen wat de fout was.

De fout was simpelweg omdat ik probeerde het volgende te gebruiken: android:background

In plaats van: app:srcCompat

in een SVG-bestand.

In jouw geval denk ik dat dit het is

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

Ik raad aan om het op deze manier te gebruiken

voeg dit toe aan je build.gradleapp

android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

en

<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"
     />

Ik hoop dat dit helpt.


Antwoord 8, autoriteit 2%

Ik kreeg deze fout omdat ik het thema als Materieel thema had geselecteerd. Maar terwijl ik de app op 4.4.2 probeerde uit te voeren, gaf het deze fout.

Oplossing: selecteer Theme_holo als thema


Antwoord 9, autoriteit 2%

Mijn afbeeldingsgrootte is slechts 14Kb, maar het probleem is dat de ontwerper me 1011px x 1819px heeft gegeven (resolutie te hoog, vandaar de InflateException)


Antwoord 10, autoriteit 2%

In het geval dat iemand soortgelijke problemen krijgt, ik had zo’n probleem terwijl ik de weergave opdreef:

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

door vervanging vaste getApplicationContext()met this


11

Ik weet dat het een beantwoorde vraag, maar ik heb niet de oorzaak dat ik geconfronteerd zien.

Het is dat Android Studio geplaatst mijn drawables in / betekenbare-V24
Mijn emulator is API 23. Dus, uiteindelijk kan het niet vinden.

De oplossing was om alle drawables verplaatsen naar / betekenbare map (geen -24).


12

U moet de beeldbestanden van de “betekenbare-24” map naar de “betekenbare” map te kopiëren.


13

Ik had dezelfde fout en ik loste het verplaatsen van mijn drawables uit de map betekenbare-mdpi naar de map betekenbare. Kostte me wat tijd om te beseffen, want in Eclipse alles werkte perfect, terwijl in Android Studio Ik heb deze lelijke runtime fouten.

Bewerken Let op:
Als u migreert van verduistering Android Studio en uw project is afkomstig van verduistering kan het gebeuren, dus wees voorzichtig, dat in Android Studio alles een beetje verschilt van verduistering.


14

In mijn geval, deze fout gebeuren wanneer ik de Zwevende actieknop stel android:backgroundTint="#000". Dan gewoon niet instellen backgroundTinten probleem opgelost.
Hoop dat het nuttig is voor jou.


15

Ik had het zelfde probleem en opgelost door het verwijderen van betekenbare-V24 met (24) voor beelden in getekende map en ze te vervangen door gewone drawables.


16

opgelost door het bewegen van al mijn betekenbare items uit betekenbare-V24 te betekenbare


17

Ik had dit probleem alleen maar af en toe in geslaagd om erachter te komen wat het was. Was verwijzing naar een kleur in mijn waarden die werd veroorzaakt problemen. Dus gedefinieerd handmatig in plaats van via een uit de dropdown suggestions.Then het werkte!


18

In mijn geval heb ik het volledige pakket naam van de bibliotheek UI component die ik gebruik in mijn lay-bestand op te geven.


19

Ik had hetzelfde probleem geconfronteerd, ik had uitzicht tag gebruikt in xml plaats van View. Vervangen om View class het probleem opgelost.

hoop dat het helpt ook voor jou ..


Antwoord 20

Voor mij gebeurde het omdat ik probeerde om xml-vectorafbeeldingen te mixen met gewone png in hetzelfde lay-outbestand,

pas nadat ik de xml-vectorafbeeldingen had vervangen door pngs, begon het te werken


Antwoord 21

Ik had dezelfde fout in Crashlyticsvanaf een vreemd apparaat:
Motorola One Vision Android 5.1 en 20 GB (gratis) RAM, geroot
Dit apparaat wordt oorspronkelijk geleverd met Android 9.0, 4 GB RAM

Waarschijnlijk probeert iemand de app die ik momenteel ontwikkel te hacken en heeft hij problemen met multi-APK’s. Dus drawables kunnen niet worden gevonden en de app levert de crash


Antwoord 22

Ik had dezelfde fout op Kitkat, want ik had android:tint op een van de imageViews. Het zou prima werken op Lollipop, maar crashen op Kikkat met Error Inflating-klasse.

Opgelost door app:tint te gebruiken in de AppCompatImageView waarmee ik te maken had.

Other episodes