2017-02-18 7 views
0

Ich habe ein bisschen gesucht und konnte nichts relevantes zu meiner Frage finden oder es hat nicht funktioniert. Jedenfalls bekomme ich eine Fehlermeldung mit der Nachricht java.lang.OutOfMemoryError, wenn ich versuche, meine App auf meinem Android-Handy auszuführen. Es gibt viel Platz auf dem Telefon, so dass ich nicht sehe, warum es einen Fehler geben sollte. HierAndroid App läuft nicht; java.lang.OutOfMemoryError

ist der Link zum App:

https://play.google.com/store/apps/details?id=com.safariagaming.twidle

Hier ist die vollständige Fehlermeldung:

java.lang.OutOfMemoryError: Failed to allocate a 36000012 byte allocation with 7364672 free bytes and 7MB until OOM 
    at dalvik.system.VMRuntime.newNonMovableArray(Native Method) 
    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:856) 
    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:675) 
    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:2228) 
    at android.content.res.Resources.loadDrawableForCookie(Resources.java:4211) 
    at android.content.res.Resources.loadDrawable(Resources.java:4085) 
    at android.content.res.Resources.loadDrawable(Resources.java:3935) 
    at android.content.res.TypedArray.getDrawable(TypedArray.java:886) 
    at android.widget.ImageView.<init>(ImageView.java:157) 
    at android.widget.ImageButton.<init>(ImageButton.java:85) 
    at android.widget.ImageButton.<init>(ImageButton.java:81) 
    at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:60) 
    at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:56) 
    at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:118) 
    at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1017) 
    at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1076) 
    at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:758) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:847) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:527) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:143) 
    at com.safariagaming.twidle.MainActivity.onCreate(MainActivity.java:13) 
    at android.app.Activity.performCreate(Activity.java:6876) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
    at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:158) 
    at android.app.ActivityThread.main(ActivityThread.java:7224) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
+1

Bitmaps können sehr leicht das Speicherbudget einer App ausschöpfen, wie die Ausnahme gezeigt hat, aber ich kann Sie auf einen Link zur effizienten Verarbeitung von Bitmaps verweisen. –

+1

Hier geht es nicht um Speicherplatz. Es handelt sich um die Menge an Speicher, die Ihre App verwendet. Und es ist wahrscheinlich ein Problem mit der Art, wie die App Bilder verwaltet. ein Fehler in Ihrem Code. Aber wir können Ihnen nicht wirklich helfen, das zu beheben, ohne die relevanten Teile des Quellcodes zu sehen. –

+0

@OusmaneMahyDiaw Ja bitte, und danke für Ihre Antwort! –

Antwort

0

Sie sollten mehr vorsicht über die von Bitmap Sie in App verwenden. Sie müssen sich auch anderer allgemeiner Leistungsverbesserungstipps bewusst sein. Sie können in der Entwickler-Website finden, wie Sie eine Bitmap skalieren. https://developer.android.com/topic/performance/graphics/load-bitmap.html Von diesem Link können Sie Hilfe bekommen, um großes Bild zu laden.

Eine andere mögliche Lösung ist die Verwendung von einigen Bild loader Bibliotheken wie Glide, Picasso oder UIL usw.

Sie auch einige Tipps hilfreich Speichernutzung zu reduzieren, von hier finden ...... https://lalitjadav.blogspot.in/2017/02/best-practices-for-memory-management.html?m=1

+0

Ich benutze keine Bitmaps .. alles was ich benutze sind normale .png Bilder. https://gyazo.com/ebf913685064042f69ac50a8219a2d15 –

+0

Ao Ihr Png kann groß sein. Bitte benutze das Bild nach dem Scaling. –

+0

Was ist nach der Skalierung? –

Verwandte Themen