2016-12-23 18 views
-2

so grundsätzlich bin ich neu in Java und Android Studio. Ich kenne die Grundlagen, aber ich bin noch nicht so gut.java lang RuntimeException:

Ich bekomme diesen Fehler, wenn ich versuche, die App auf meinem Telefon zu starten. Andere Threads zu durchsuchen, hat mir auch nicht geholfen, da ich im MainActivity nur ein Hintergrundbild habe. Ich muss noch eins hinzufügen, aber wenn ich es mache und versuche, die App zu starten, stürzt es ab.

Größe des Hintergrundbildes: 115kb Größe des Bildes muss ich noch hinzufügen: 164 KB (versuchte, es zu 74Kb zu komprimieren, hat nicht funktioniert.)

java.lang.RuntimeException: Canvas: trying to draw too large(430377192bytes) bitmap. 

ich das sah in einem anderen Thread das sollte im Manifest gestellt werden, die nicht geholfen hat, entweder:

android:largeHeap="true" 

ich hoffe, dass ich genügend Informationen zur Verfügung gestellt habe erforderlich, um die Frage zu beantworten, wenn Sie mehr brauchen mir bitte sagen.

Auch hier bin ich neu.

+1

Könnten Sie bitte den Code dafür zeigen? Die Bitmap verbraucht 430377192/1024/1024 = 410 MB Speicher. – oschlueter

+0

[bitte das offizielle Dokument ansehen] (https://developer.android.com/training/displaying-bitmaps/load-bitmap.html) –

+0

@oschlueter. Nein, es ist (approximiert ein quadratisches Bild) "sqrt (430377192/4)", was eine geschätzte Bildgröße von "10372 * 10372" ergibt. Ich muss immer noch ein Gerät mit einer solchen Auflösung sehen. Wenn Sie WHY '/ 4' fragen, liegt das daran, dass R, G, B und A (die Farbkomponenten einer Bitmap) 4 Bytes sind. –

Antwort

1

430377192 Bytes entspricht einem 10372 x 10372 Pixel Bild. Dies ist viel zu groß. Darüber hinaus ist es viel größer als jedes Android-Gerät Bildschirm, die Sie wahrscheinlich jemals begegnen werden.

So finden Sie diese ausklappbare Ressource, und reduzieren Sie ihre Auflösung auf etwas Vernünftigeres.

Wenn Sie diese ziehbar Ressource in res/drawable/ platziert, haben Sie bitte Verständnis, dass res/drawable/ ein Synonym für res/drawable-mdpi/ ist, was für Bilder entwarfen -mdpi Bildschirme (~ 160 dpi). Diese Bilder werden zu höheren Auflösungen auf Bildschirmen höherer Dichte (z. B. doppelt entlang jeder Achse für Bildschirme -xhdpi) hochgerechnet. Erstellen Sie entweder dedizierte Zeichen für geeignete Dichten oder verschieben Sie dieses Bild in res/drawable-nodpi/.

+0

nette Erklärung. –