2016-06-22 14 views
-2

Wirklich dieses Problem. Entschuldigung, weil diese Frage viele Male gestellt wurde. aber es wurde gebraucht. Ich zeige große Bilder nach dem Verkleinern. So sieht meine App wie Flipboard App aus. Der Benutzer kann die Seiten nach rechts oder links spiegeln. Ich habe recycle() verwendet, damit die einzelnen Bitmaps frei werden. Aber wenn Benutzer 8 -9 Seiten wischen wird es funktioniert aber nach diesem App-Absturz und einige Zeit nicht abstürzen. Nur das Problem ist auf das Gedächtnis zurückzuführen.java.lang.OutOfMemoryError: Konnte eine 3225612 Byte-Zuweisung mit 886384 freien Bytes und 865 KB nicht zuordnen, bis OOM

Ich bin auf der Suche nach einem Weg, dass ich die Ausnahme still und app App-Speicher abfangen wird. ist es gut oder möglich? ist eine andere Lösung?

ich diese Bibliothek verwenden für die Anzeige der Bilder https://github.com/androidquery/androidquery

+0

Haben Sie das Android-Dokument [Loading Large Bitmaps Efficiently] (https://developer.android.com/training/displaying-bitmaps/load-bitmap.html) gelesen? – Tigger

+0

Ja, ich lese das Dokument. – user1629977

+0

Die Bibliothek scheint tot zu sein. Das letzte Update war vor 2 Jahren. Kannst du zu einer Alternative wie Glide, Picasso, Volley wechseln oder musst du sie benutzen? Ansonsten können wir ohne Code wenig tun. – GPuschka

Antwort

-1

Ich denke, es Ihr Problem zu lösen, nur diese Paste in Ihrer Anwendung Tag in Manifest-Datei

android:largeHeap="true" 
+1

Sie sollten 'android: largeHeap =" true "nicht verwenden, es sei denn, Sie arbeiten mit sehr großen Bitmaps. Denken Sie an Apps wie Photoshop. Meistens sind OOMs auf Speicherlecks zurückzuführen, die behoben werden können. –

+0

okay .. ich werde es mir merken –

1

Es klingt wie Sie ein Gedächtnis haben Leck. Es gibt mehrere Tools, um herauszufinden, was das verursacht.

  • LeakCanary, eine sehr schöne Bibliothek von Square
  • Allocation Tracker in Android Studio
  • Eclipse-Memory Analyzer (MAT) ein Haufen
  • Dump

Viel Glück zu analysieren, um die Täter zu finden!