Frage von AaronWallerr, 41

Android Studio, warum stürzt die App ab?

Wenn ich versuche die App auf meinem Handy zu starten stürzt sie direkt wieder ab.Folgende Fehlermeldung erscheint danach in meinem logcat (siehe Bild)

Ich dachte zuerst es läge an dem unzureichendem Speicherplatz meines Gerätes, habe ein bisschen was runter gepackt und es nochmals versucht, trotzdem erscheint diese Fehlermeldung.

Kann jemand herauslesen was diesen absturz verursacht?

DankeLG Aaron

Expertenantwort
von regex9, Community-Experte für Programmierung, 6

Die OutOfMemory-Exception erscheint, da nicht genügend Speicherplatz für die App zur Verfügung steht, um die Bilder zu laden, die sie verwenden soll.

Prüfe also vor dem Laden eines Bildes, wie groß es ist und entscheide dann, wie du weiter vorgehst. Du kannst dich hierbei an diesem Artikel orientieren: https://developer.android.com/training/displaying-bitmaps/load-bitmap.html

Kommentar von AaronWallerr ,

Habe die Icons die eine Sehr sehr hohe Auflösung hatten verkleinert. Aber nun kriege ich einen neuen Fehler, habe eine neue Frage gestellt: https://www.gutefrage.net/frage/android-studio-app-stuerzt-ab-aber-warum?foundIn...

Kommentar von regex9 ,

Woran es liegt, habe ich dir bereits im Kommentar unten geschrieben. Eine Schriftart konnte nicht gefunden werden.

Du musst einmal den Stacktrace lesen. Dort steht der Fehler auch klar und deutlich drin.

Antwort
von DreiGegengifts, 21

Kenne ich gut die Fehlermeldung. Ich hab das beim Einlesen einer Bitmap aus dem Netz auch gehabt.

Ursache ist, dass so eine App nur wenig Arbeitsspeicher bekommt und bei Bitmaps massiv Arbeitsspeicher reserviert werden muss, bis er an seine Grenzen stößt.

Einfachste Lösung ist erst mal keine Bitmaps einzulesen, die eine hohe Auflösung haben. Alles andere ist ein bisschen komplizierter. Google stellt da auch einen Artikel dazu bereit, wie man an das Problem heran geht (in Englisch https://developer.android.com/training/displaying-bitmaps/load-bitmap.html). Probier erst mal das Bild zu verkleinern, das du laut Stacktrace als Icon setzen willst. 

Und mach dir bei der Android Programmierung immer klar: Was dein Device noch schafft ist vielleicht für ein schwächeres Device der Absturz.

Antwort
von heilwigkenner, 19

Zeig uns bitte mal deinen Code.

Sinnvoller ist es, wenn du ein Vector Drawable verwendest, sofern das mit der Bibliothek, die du verwendest möglich ist (generell spricht aber nichts dagegen).

Hier kannst du mehr über Vector Drawables lesen:

https://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-91cbafa87c88

Kommentar von AaronWallerr ,

three_buttons_menu.xml:
http://pastebin.com/BdNh6TwT

MainActivity.java:
http://pastebin.com/3j8q4nF9

AndroidManifest.xml: 
http://pastebin.com/UVFxmhn7

Kommentar von AaronWallerr ,

Kriege momentan aber eine andere Fehlermeldung:
https://gyazo.com/fad81f94c9ab51680ff71a64668be173

Hier noch meine activity_main.xml
http://pastebin.com/nmTiieL4

Kommentar von regex9 ,

Die Font MyFont.ttf wurde nicht gefunden.

Kommentar von heilwigkenner ,

Der Fehler liegt, wie in der Fehlermeldung angezeigt, in Zeile 62. Du verwendest eine Schriftart, MyFont.ttf für die BottomBar, allerdings kann die Datei nicht gefunden werden.

Keine passende Antwort gefunden?

Fragen Sie die Community