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

  • Antworten:13
p a
  • Forum-Beiträge: 131

23.11.2011, 13:28:37 via Website

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:
111-23 13:18:28.705: ERROR/AndroidRuntime(19873): FATAL EXCEPTION: main
211-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>
311-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
411-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
511-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
611-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
711-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.os.Handler.dispatchMessage(Handler.java:99)
811-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.os.Looper.loop(Looper.java:123)
911-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.app.ActivityThread.main(ActivityThread.java:3691)
1011-23 13:18:28.705: ERROR/AndroidRuntime(19873): at java.lang.reflect.Method.invokeNative(Native Method)
1111-23 13:18:28.705: ERROR/AndroidRuntime(19873): at java.lang.reflect.Method.invoke(Method.java:507)
1211-23 13:18:28.705: ERROR/AndroidRuntime(19873): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
1311-23 13:18:28.705: ERROR/AndroidRuntime(19873): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
1411-23 13:18:28.705: ERROR/AndroidRuntime(19873): at dalvik.system.NativeStart.main(Native Method)
1511-23 13:18:28.705: ERROR/AndroidRuntime(19873): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
1611-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
1711-23 13:18:28.705: ERROR/AndroidRuntime(19873): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
1811-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
1911-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
2011-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
2111-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
2211-23 13:18:28.705: ERROR/AndroidRuntime(19873): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
2311-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.app.Activity.setContentView(Activity.java:1663)
2411-23 13:18:28.705: ERROR/AndroidRuntime(19873): at aha.pa.Premio_AppActivity.onCreate(Premio_AppActivity.java:21)
2511-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
2611-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
2711-23 13:18:28.705: ERROR/AndroidRuntime(19873): ... 11 more
2811-23 13:18:28.705: ERROR/AndroidRuntime(19873): Caused by: java.lang.reflect.InvocationTargetException
2911-23 13:18:28.705: ERROR/AndroidRuntime(19873): at java.lang.reflect.Constructor.constructNative(Native Method)
3011-23 13:18:28.705: ERROR/AndroidRuntime(19873): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
3111-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
3211-23 13:18:28.705: ERROR/AndroidRuntime(19873): ... 21 more
3311-23 13:18:28.705: ERROR/AndroidRuntime(19873): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
3411-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
3511-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:563)
3611-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:439)
3711-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
3811-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.content.res.Resources.loadDrawable(Resources.java:1997)
3911-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.content.res.TypedArray.getDrawable(TypedArray.java:653)
4011-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.View.<init>(View.java:1961)
4111-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.View.<init>(View.java:1909)
4211-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.view.ViewGroup.<init>(ViewGroup.java:286)
4311-23 13:18:28.705: ERROR/AndroidRuntime(19873): at android.widget.LinearLayout.<init>(LinearLayout.java:120)
4411-23 13:18:28.705: ERROR/AndroidRuntime(19873): ... 24 more

blickt da jemand durch?

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

23.11.2011, 13:30:27 via Website

hmm zeig mal deine xml datei

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

in zeile 2 kennt er eine klasse nicht. vertippt?

swordiApps Blog - Website

Antworten
p a
  • Forum-Beiträge: 131

23.11.2011, 13:37:03 via Website

Ich hab seit über einer Woche nichts mehr an den XML-Dateien geändert und bis heute vormittag lief alles wunderbar. Seit heute morgen verarbeite ich einen GZIPInputStream, das ist die Änderung seit der der Fehler auftritt.

Das ist (auszugsweise) die entsprechende XML-Datei
1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:orientation="vertical"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 android:layout_gravity="center_horizontal"
8 android:background="@drawable/premio_back_1"
9 android:gravity="center_horizontal">
10 [...]
11</LinearLayout>

— geändert am 23.11.2011, 13:39:42

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

23.11.2011, 13:43:51 via Website

Du startest eine Activity und übergibst evtl. den falschen Context an den Intent?
Soeine Meldung kommt da zumindest immer.

start activity ComponentInfo{aha.pa/aha.pa.Premio_AppActivity}

Package des Context und der zu startenden Activity stimmen nicht überein?
Oder im manifest definiertes Package + Name der Activity passen nicht.

— geändert am 23.11.2011, 13:46:01

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

23.11.2011, 13:44:03 via Website

project -> clean probiert?

swordiApps Blog - Website

Antworten
p a
  • Forum-Beiträge: 131

23.11.2011, 13:51:28 via Website

Packages stimmen, wie gesagt hab am XML seit mindestens einer Woche nichts mehr verändert und der Fehler wird direkt im Ladebildschirm ausglöst, ist also nix was man erst Wochen später entdecken würde.

und Project -> Clean ist mittlerweile immer das erste was ich mache wenn ich "merkwürdige" Fehlermeldungen bekomme

Antworten
Dukati Br.
  • Forum-Beiträge: 26

23.11.2011, 13:53:03 via Website

wie kann ich neue threads schreiben

Antworten
p a
  • Forum-Beiträge: 131

23.11.2011, 14:18:33 via Website

Rafael K.
LOL ... ok, man sollte einfach mal etwas tiefer im StackTrace gucken ;)

Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

Hatte eigentlich gehofft dass hier jemand noch einen anderen Lösungsansatz in petto hat, denn den OutOfMemoryError hab ich natürlich auch schon entdeckt, bin nur einfach mit meinem Latein am Ende wie ich noch mehr Speicher freigeben kann. Hab schon alles auf null gesetzt und geschlossen was vor dem Anzeigen dieses Bildschirms geladen und verarbeitet wurde.

— geändert am 23.11.2011, 14:19:05

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

23.11.2011, 14:28:28 via Website

was ist
android:background="@drawable/premio_back_1"

im detail?

swordiApps Blog - Website

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

23.11.2011, 14:30:07 via Website

Alles was nach dem OutOfMemoryError passiert, kannst du getrost ignorieren.
Danach ist die VM in einem undefiniertren Zustand und kann sich völlig unvorhergesehen verhalten, weil wahllos Zeiger ins Walhalla zeigen.

Du liest ja ziemlich viel JSON.
Benutzt du die Daten dieses JSON Strings weiter?

Dann solltest du das hier mal lesen:
https://www.nextpit.de/de/android/forum/thread/418273/Speicherverbrauch-von-Strings-VS-16MB-RAM-Limit-pro-App

p a

Antworten
p a
  • Forum-Beiträge: 131

23.11.2011, 14:46:50 via Website

Sehr gut, danke, exakt das war es.

Da fühle ich mich ja glatt wieder wie zu den guten, alten C++ Zeiten, und ich dachte immer das hätte ich langsam hinter mir gelassen.

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

23.11.2011, 15:42:00 via Website

An einigen Stellen wird halt in der VM optimiert und das sollte man wissen,
weil einem das mit viel Pech irgendwann vor die Füße fallen kann.

Was auch interessant ist:

(int) 255 == (int) 255 -> true
(int) 256 == (int) 256 -> true

new Integer(255) == new Integer(255) -> true
new Integer(256) == new Integer(256) -> false

Liegt daran, dass Integer bis 255 in der VM gecached werden.

Antworten