bishopmatthew / HackerNews

An open source Hacker News client for Android.
230 stars 61 forks source link

java.lang.OutOfMemoryError: bitmap size exceeds VM budget #5

Closed bishopmatthew closed 11 years ago

bishopmatthew commented 11 years ago

Crash on slower / older devices, especially when switching between fragments / activities quickly. Related to creating a lot of bitmaps for my IconViews.

01-31 13:53:08.640: E/AndroidRuntime(27351): FATAL EXCEPTION: main 01-31 13:53:08.640: E/AndroidRuntime(27351): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.airlocksoftware.hackernews/com.airlocksoftware.hackernews.activity.MainActivity}: android.view.InflateException: Binary XML file line #36: Error inflating class <unknown> 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.os.Handler.dispatchMessage(Handler.java:99) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.os.Looper.loop(Looper.java:130) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.app.ActivityThread.main(ActivityThread.java:3683) 01-31 13:53:08.640: E/AndroidRuntime(27351): at java.lang.reflect.Method.invokeNative(Native Method) 01-31 13:53:08.640: E/AndroidRuntime(27351): at java.lang.reflect.Method.invoke(Method.java:507) 01-31 13:53:08.640: E/AndroidRuntime(27351): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 01-31 13:53:08.640: E/AndroidRuntime(27351): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 01-31 13:53:08.640: E/AndroidRuntime(27351): at dalvik.system.NativeStart.main(Native Method) 01-31 13:53:08.640: E/AndroidRuntime(27351): Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class <unknown> 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.view.LayoutInflater.createView(LayoutInflater.java:518) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.view.LayoutInflater.rInflate(LayoutInflater.java:626) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.view.LayoutInflater.inflate(LayoutInflater.java:383) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 01-31 13:53:08.640: E/AndroidRuntime(27351): at com.airlocksoftware.hackernews.view.TextSettingsOverflow.<init>(TextSettingsOverflow.java:72) 01-31 13:53:08.640: E/AndroidRuntime(27351): at com.airlocksoftware.hackernews.activity.MainActivity.setupSearchAndTextSettingsOverflow(MainActivity.java:430) 01-31 13:53:08.640: E/AndroidRuntime(27351): at com.airlocksoftware.hackernews.activity.MainActivity.onCreate(MainActivity.java:225) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 01-31 13:53:08.640: E/AndroidRuntime(27351): ... 11 more 01-31 13:53:08.640: E/AndroidRuntime(27351): Caused by: java.lang.reflect.InvocationTargetException 01-31 13:53:08.640: E/AndroidRuntime(27351): at java.lang.reflect.Constructor.constructNative(Native Method) 01-31 13:53:08.640: E/AndroidRuntime(27351): at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.view.LayoutInflater.createView(LayoutInflater.java:505) 01-31 13:53:08.640: E/AndroidRuntime(27351): ... 22 more 01-31 13:53:08.640: E/AndroidRuntime(27351): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.graphics.Bitmap.nativeCreate(Native Method) 01-31 13:53:08.640: E/AndroidRuntime(27351): at android.graphics.Bitmap.createBitmap(Bitmap.java:477) 01-31 13:53:08.640: E/AndroidRuntime(27351): at com.airlocksoftware.holo.image.IconView.generateBitmap(IconView.java:210) 01-31 13:53:08.640: E/AndroidRuntime(27351): at com.airlocksoftware.holo.image.IconView.generateDrawables(IconView.java:185) 01-31 13:53:08.640: E/AndroidRuntime(27351): at com.airlocksoftware.holo.image.IconView.<init>(IconView.java:87) 01-31 13:53:08.640: E/AndroidRuntime(27351): ... 25 more

bishopmatthew commented 11 years ago

Fixed two memory leaks in c08e442eabf283fc6df8127ef96351656230cbb7 that should have fixed this