Hintergrundbild sorgt für Appabsturz

kosmus

kosmus

Erfahrenes Mitglied
62
Hallo zusammen,

ich habe ein kleines Problem mit meiner App. Wenn ich sie auf meinem S4 (mit Android 4.4 Stockrom) ausführe, verschwindet das Hintergrundbild beim Wechsel in die Landscape Ansicht und wenn ich zurück in Portait wechsel stürzt die APP endgültig ab. Auf meinem S2 (mit Android 4.2 CyanogenMod 10.1.3-RC2) läuft der Wechsel ohne Probleme.

So soviel zum Problem, jetzt zur App:

hier die Style xml aus dem Values Ordner für API Level 11 und höher:
Code:
<resources>
    <!-- Theme ab API Level 11 -->

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
		<item name="android:actionBarStyle">@style/barStyle</item>
		 <item name="android:windowBackground">@drawable/hintergrund</item>
    </style>
	<style name="barStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
	    <item name="android:background">@color/dunkelBlau</item>    
	</style>

</resources>

Das Hintergrundbild liegt einmal in drawable Ordner mit einer Auflösung von 688x1119
und einmal im drawable-land mit 1706x1066
Damit die APK nicht zu groß wird, habe ich die Bilder als jpg abgelegt.

Hier noch das Log zum Absturz:
Code:
03-23 16:03:54.141: E/AndroidRuntime(29115): FATAL EXCEPTION: main

03-23 16:03:54.141: E/AndroidRuntime(29115): Process: de.kosmus.testapp, PID: 29115

03-23 16:03:54.141: E/AndroidRuntime(29115): java.lang.OutOfMemoryError

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:677)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:507)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:872)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.content.res.Resources.loadDrawable(Resources.java:3024)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.content.res.Resources.getDrawable(Resources.java:1586)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3312)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3355)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:355)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.Activity.setContentView(Activity.java:2010)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:216)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at de.kosmus.testapp.SuperClass.onCreate(SuperClass.java:33)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at de.kosmus.testapp.OneJ.onCreate(OneJ.java:15)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.Activity.performCreate(Activity.java:5426)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3924)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.ActivityThread.access$1000(ActivityThread.java:161)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.os.Handler.dispatchMessage(Handler.java:102)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.os.Looper.loop(Looper.java:157)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at android.app.ActivityThread.main(ActivityThread.java:5356)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at java.lang.reflect.Method.invokeNative(Native Method)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at java.lang.reflect.Method.invoke(Method.java:515)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)

03-23 16:03:54.141: E/AndroidRuntime(29115): 	at dalvik.system.NativeStart.main(Native Method)

Vielen Dank schonmal für eure Hilfe
 
Hast du dein Log mal gelesen? ... Out oft Memory. .. das sagt alles oder?
 
  • Danke
Reaktionen: kosmus
ja danke, manchmal sieht man den Wald vor lauter bäumen nicht. Ich habe die Dateien jetzt mal deutlich verkleinert, wundert mich nur dass mein S2, das ja nur halb soviel ram hat, damit klar kam.
 
Ich denke/vermute, dass du das Problem nicht im Kern löst, nur indem du das Bild verkleinerst. Ich vermute eher, dass sich auch dein Ram-Verbrauch mit jeder Drehung des Displays erhöht, weil die alte Bitmap nicht recycled wird (Memory Leak!). Deshalb denke ich, dass du gut damit beraten bist, mal deinen Ram-Verbrauch der App zu beobachten (bspw. mit der App PerfMon) - ist ja nicht nur bei Problemen sinnvoll, sondern auch generell, man erkennt i.d.R. schnell mögliche Memory Leaks.

Also, schau dir den Ram-Verbrauch an und schau, ob dieser schön ansteigt wie ich vermute. Du kannst auch mal schauen, ob dir da die unbindDrawables()-Funktion weiter hilft (einfach mal Googeln).
 
Zuletzt bearbeitet:
ich werde das mal weiter beobachten, aber laut ddms, ist die Ramauslastung gleichbleibend hoch auch nach 20 Wechseln zwischen Landscape und Portrait...
 
Jo, wie gesagt, nur ne Vermutung/Verdacht. :)
 

Ähnliche Themen

netfreak
  • netfreak
Antworten
10
Aufrufe
461
netfreak
netfreak
5
Antworten
0
Aufrufe
1.151
586920
5
Y
Antworten
4
Aufrufe
1.227
swa00
swa00
Zurück
Oben Unten