2

I am getting an OutOfMemmory error while loading an image in an activity. I have one activity with one image and thats it. I dont understand how one image can cause this error

Log:

java.lang.OutOfMemoryError: Failed to allocate a 144288012 byte allocation with 2126212 free bytes and 92MB until OOM
                                                 at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
                                                 at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
                                                 at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620)
                                                 at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455)
                                                 at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1155)
                                                 at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:720)
                                                 at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571)
                                                 at android.content.res.Resources.loadDrawable(Resources.java:858)
                                                 at android.content.res.TypedArray.getDrawable(TypedArray.java:928)
                                                 at android.widget.ImageView.<init>(ImageView.java:162)
                                                 at android.widget.ImageView.<init>(ImageView.java:150)
                                                 at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:72)
                                                 at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:68)
                                                 at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
                                                 at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024)
                                                 at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)
                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769)
                                                 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
                                                 at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
                                                 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
                                                 at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
                                                 at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
                                                 at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                 at in.snipped.snippedsalons.MainActivity.onCreate(MainActivity.kt:10)
                                                 at android.app.Activity.performCreate(Activity.java:6679)
                                                 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
                                                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                 at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                 at android.os.Looper.loop(Looper.java:154)
                                                 at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Phantômaxx
  • 36,442
  • 21
  • 78
  • 108
Sriram R
  • 1,619
  • 1
  • 16
  • 33

2 Answers2

0

Please add the missing in manifest application

<application
    android:allowBackup="true"
    android:hardwareAccelerated="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

You can find more here

Subin Babu
  • 1,360
  • 2
  • 21
  • 47
0

There are two solution to get rid of this error

  1. Compress your image and change the resolution as per your need.
  2. Use glide to load image, glide make copy of that image as according to your image view's size

You can try both.

Suraj Vaishnav
  • 5,731
  • 3
  • 29
  • 40