android.view.InflateException was will er mir denn damit sagen?

S

samarek

Fortgeschrittenes Mitglied
2
Hi

beim starten meiner App bekomme ich eine merkwürdige Fehlermeldung, die ich nicht wirklich verstehe und die Ursache auch nicht konkret eingränzen kann

Hier ist mal die gesamte Meldung:
Code:
11-23 13:18:28.705: ERROR/AndroidRuntime(19873): FATAL EXCEPTION: main
11-23 13:18:28.705: ERROR/AndroidRuntime(19873): java.lang.RuntimeException: Unable to start activity ComponentInfo{aha.pa/aha.pa.Premio_AppActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.os.Looper.loop(Looper.java:123)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.app.ActivityThread.main(ActivityThread.java:3691)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at java.lang.reflect.Method.invokeNative(Native Method)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at java.lang.reflect.Method.invoke(Method.java:507)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at dalvik.system.NativeStart.main(Native Method)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.LayoutInflater.createView(LayoutInflater.java:518)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.app.Activity.setContentView(Activity.java:1663)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at aha.pa.Premio_AppActivity.onCreate(Premio_AppActivity.java:21)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     ... 11 more
11-23 13:18:28.705: ERROR/AndroidRuntime(19873): Caused by: java.lang.reflect.InvocationTargetException
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at java.lang.reflect.Constructor.constructNative(Native Method)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.LayoutInflater.createView(LayoutInflater.java:505)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     ... 21 more
11-23 13:18:28.705: ERROR/AndroidRuntime(19873): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:563)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:439)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.content.res.Resources.loadDrawable(Resources.java:1997)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.content.res.TypedArray.getDrawable(TypedArray.java:653)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.View.<init>(View.java:1961)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.View.<init>(View.java:1909)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.view.ViewGroup.<init>(ViewGroup.java:286)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     at android.widget.LinearLayout.<init>(LinearLayout.java:120)
11-23 13:18:28.705: ERROR/AndroidRuntime(19873):     ... 24 more
blickt da jemand durch?
 
Frage: welche Views hast du im Layout? Weiterhin vermute ich, dass du eine ImageView mit einem riesigen Bild drin hast?! Kann das sein? Würde mich auf die OutOfMemory Exception konzentrieren.
 
Ja, eine ImageView hab ich drin, das Bild dadrin ist ein png das knapp 22kb hat, ansonsten gibt es noch das Hintergrundbild, ebenfalls ein png liegt bei ca 91kb, also eigentlich nix großes.
Ansonsten ist nur noch ein LinearLayout mit 4 Buttons drin, also eigentlich nichts wildes.

Hab jetzt auch die Exception direkt beim Laden raus, jetzt tritt allerdings die gleiche Exception mit der gleichen Fehlermeldung auf wenn ich im Layout auf den ersten Button klicke und einige der zuladenden Daten landen nicht mehr in der Datenbank, wobei dass aber noch einen anderen Zusammenhang haben kann, muss nicht damit zusammenhängen.

Nachtrag:
Wenn die App nach der Exception beim Button klicken neugestartet wird läuft alles ohne Probleme.
 
Zuletzt bearbeitet:
Danke für den Hinweis, der Link nutzt mir aber nicht viel, da es da um große Bilder geht und auch primär um Grafikanwendungen. Alles was ich mit Bildern mache sind Logos und Hintergrundbilder, also nichts wirklich grafiklastiges, alle meine Bilder zusammen kommen auch nicht mal in die Nähe der Größen für die der Link gedacht ist.

Hab es in der Tat die ganze Zeit nur auf meinem Handy getestet, nicht auf dem Emulator und siehe da ... im Emulator komme ich nichtmal über das einlesen der JSON Daten hinaus, da steigt er schon mit einer OutOfMemoryException aus.

Es geht auch wirklich nicht um viel, in der Regel scheitert es an 1-2mb, kann ich nicht einfach der Anwendung mehr Speicher zuschieben ?
 
Nein, das geht nicht. Zumindest nicht ohne Root Rechte, wobei sicher auch dann noch schwierig ist.

Das klingt auch alles etwas komisch. Wieso brauchst du denn so viel Speicher? Legst du irgendwelche Objekte in Schleifen immer und immer wieder an statt sie wiederzuverwenden? Designing for Performance | Android Developers
 
ja .... hätte mich jetzt auch überrascht wenn man das einfach hätte machen können, würd ja ... allem Tür und Tor öffnen.

Also, ich bin jetzt schon diverse mal durch den Code gegangen und hab den optimiert, optimiert, optimiert und ich gehe jetzt nochmal durch und nulle alles was ich benutze nachdem ich fertig damit bin.

aber langsam weiss ich echt nicht mehr was ich noch machen soll
 
nativ kannst du allokieren wie du lustig bist.
Nur der Java Heapspace ist begrenzt, meistens iwo zwischen 16 und 64MB
 

Ähnliche Themen

U
  • unerfahrenerAppEntwickler
Antworten
3
Aufrufe
665
swa00
swa00
B
Antworten
3
Aufrufe
897
jogimuc
J
5
Antworten
22
Aufrufe
1.366
590239
5
Zurück
Oben Unten