Problem mit OutOfMemoryError

  • Antworten:3
Daniel
  • Forum-Beiträge: 177

02.08.2011, 17:07:10 via Website

Ich habe ein Problem mit folgendem Error:
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
Testen konnte ich nur im Emulator da ich kein Android Gerät besitze.

Sieht so aus als würden die Bilder in meiner App zu viel Speicher verbrauchen, was ich mir aber nicht wirklich vorstellen kann. Die einzigen Bilder die ich verwendet sind ein Button (~0,2 kb) und der Werbebanner von Madvertise. An dem 0,2 kb Button kann es wohl kaum liegen, also bleibt nur mehr der Banner übrig. Das legt auch der Trace nahe, da dort irgendwas vom Madvertise SDK angezeigt wird:
108-02 14:57:24.895: ERROR/AndroidRuntime(204): Uncaught handler: thread main exiting due to uncaught exception
208-02 14:57:24.895: ERROR/AndroidRuntime(204): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
308-02 14:57:24.895: ERROR/AndroidRuntime(204): at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)
408-02 14:57:24.895: ERROR/AndroidRuntime(204): at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:384)
508-02 14:57:24.895: ERROR/AndroidRuntime(204): at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:397)
608-02 14:57:24.895: ERROR/AndroidRuntime(204): at de.madvertise.android.sdk.MadView.showStaticBannerView(MadView.java:174)
708-02 14:57:24.895: ERROR/AndroidRuntime(204): at de.madvertise.android.sdk.MadView.refreshView(MadView.java:160)
808-02 14:57:24.895: ERROR/AndroidRuntime(204): at de.madvertise.android.sdk.MadView.access$0(MadView.java:155)
908-02 14:57:24.895: ERROR/AndroidRuntime(204): at de.madvertise.android.sdk.MadView$1.run(MadView.java:407)

Um das Problem zu beheben habe ich das hier versucht. Leider ohne Erfolg.

Alles was ich mit dem Madvertise SDK mache sind diese beiden Zeilen:
1// set the callback listener, to receive a message when an ad was loaded
2 MadView madView = (MadView) findViewById(R.id.madad);
3 madView.setMadViewCallbackListener(this);

Hätte irgendjemand eine Idee woran das liegen könnte?

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

02.08.2011, 21:05:31 via Website

Willkommen im Club ;-) Schon hundert Mal gesehen - schon hundert Mal geflucht ...

Diese verdammten Bitmaps werden vom System ausgepackt und liegen dann in unglaublichen Größen vor. Aus einer 900K Datei werden dann 12MB (nur um ein paar Werte zu nennen). Da dies nicht Dein Code ist würde ich mich an den Entwickler wenden. Ich vermute es gibt ein ImageView mit einem android:id="" Attribut.

Das Geheimnis ist die ...

1bitmapFactoryOptions.inSampleSize

... die ein multiple von zwei sein muss aber klein genug das man das Bitmap nicht unahnsehnlich macht. Ob man das am SDK vorbei im XML setzen kann weiß ich nicht aber wenn ich die Bitmaps selbst dekodiere dann kalkuliere ich explizit dieses Attribut.

Gruß
Harald

Antworten
Gelöschter Account
  • Forum-Beiträge: 281

03.08.2011, 07:49:40 via Website

Naja, was ausser Auspacken soll so eine Laufzeitumgebung auch sonst mit Bildern tun, wenn sie diese anzeigen will ;-)

— geändert am 03.08.2011, 07:50:01

Antworten
madvertise Berlin
  • Forum-Beiträge: 25

05.08.2011, 17:34:45 via Website

Hallo Daniel,

vielen Dank für den Hinweis. In einigen Wochen wird von uns eine neue Android SDK Version released, bei der das nicht mehr auftreten wird. Bis dahin bitte das derzeitige SDK nutzen, wir freuen uns jederzeit über Feedback zur Anwendung.

Viele Grüße,

Dein madvertise Support Team
support@madvertise.com
www.madvertise.com

Antworten