[Android] Bitmap - Caused by: java.lang.OutOfMemoryError

2014. 9. 19. 15:30Programing/Android / Java

Bitmap을 사용하는 경우 OutOfMemory Error가 발생하는 경우가 있습니다.

소스에는 아무런 문제도 없는데요 말입니다.


09-19 15:18:13.208: E/AndroidRuntime(23175): FATAL EXCEPTION: main

09-19 15:18:13.208: E/AndroidRuntime(23175): Process: com.victor.goodluckycharm, PID: 23175

09-19 15:18:13.208: E/AndroidRuntime(23175): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.victor.goodluckycharm/com.victor.goodluckycharm.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class <unknown>

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2203)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2253)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.app.ActivityThread.access$800(ActivityThread.java:142)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1203)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.os.Handler.dispatchMessage(Handler.java:102)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.os.Looper.loop(Looper.java:136)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.app.ActivityThread.main(ActivityThread.java:5120)

09-19 15:18:13.208: E/AndroidRuntime(23175): at java.lang.reflect.Method.invokeNative(Native Method)

09-19 15:18:13.208: E/AndroidRuntime(23175): at java.lang.reflect.Method.invoke(Method.java:515)

09-19 15:18:13.208: E/AndroidRuntime(23175): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)

09-19 15:18:13.208: E/AndroidRuntime(23175): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)

09-19 15:18:13.208: E/AndroidRuntime(23175): at dalvik.system.NativeStart.main(Native Method)

09-19 15:18:13.208: E/AndroidRuntime(23175): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class <unknown>

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.LayoutInflater.createView(LayoutInflater.java:620)

09-19 15:18:13.208: E/AndroidRuntime(23175): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.View.inflate(View.java:17516)

09-19 15:18:13.208: E/AndroidRuntime(23175): at com.victor.goodluckycharm.MainActivity.onCreate(MainActivity.java:99)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.app.Activity.performCreate(Activity.java:5275)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2167)

09-19 15:18:13.208: E/AndroidRuntime(23175): ... 11 more

09-19 15:18:13.208: E/AndroidRuntime(23175): Caused by: java.lang.reflect.InvocationTargetException

09-19 15:18:13.208: E/AndroidRuntime(23175): at java.lang.reflect.Constructor.constructNative(Native Method)

09-19 15:18:13.208: E/AndroidRuntime(23175): at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.LayoutInflater.createView(LayoutInflater.java:594)

09-19 15:18:13.208: E/AndroidRuntime(23175): ... 23 more

09-19 15:18:13.208: E/AndroidRuntime(23175): Caused by: java.lang.OutOfMemoryError

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:587)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:422)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.content.res.Resources.loadDrawable(Resources.java:2150)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.content.res.TypedArray.getDrawable(TypedArray.java:602)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.view.View.<init>(View.java:3558)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.widget.ImageView.<init>(ImageView.java:123)

09-19 15:18:13.208: E/AndroidRuntime(23175): at android.widget.ImageView.<init>(ImageView.java:119)

09-19 15:18:13.208: E/AndroidRuntime(23175): ... 26 more



의외로 해결책은 간단했습니다.
AndroidManifest.xml 파일에

<application>
....
android:largeHeap="true"
....
</application>