0

i got a OutOfMemoryError in my App, but not in my code where I would see ways how to handle / catch it. Any Idea how to prevent/work-around?

java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:605)
at android.graphics.Bitmap.createBitmap(Bitmap.java:585)
at com.google.android.maps.ZoomHelper.createSnapshot(ZoomHelper.java:444)
at com.google.android.maps.ZoomHelper.beginZoom(ZoomHelper.java:194)
at com.google.android.maps.MapView$2.onScaleBegin(MapView.java:380)
at android.view.ScaleGestureDetector.onTouchEvent(ScaleGestureDetector.java:261)
at com.google.android.maps.MapView.onTouchEvent(MapView.java:682)
at android.view.View.dispatchTouchEvent(View.java:5552)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1951)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1712)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1928)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1376)
at android.app.Activity.dispatchTouchEvent(Activity.java:2364)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1876)
at android.view.View.dispatchPointerEvent(View.java:5736)
at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2920)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2473)
at android.view.ViewRootImpl.processInputEvents(ViewRootImpl.java:847)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2482)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)

happened on ThinkPad Tablet with Android 4.0.3

ligi
  • 39,001
  • 44
  • 144
  • 244

1 Answers1

0

You can't catch an OutofMemory Error.
Just google it, there are dozens of Pages which report and discuss about OoMs in Android. Most common causes are huge static variables or Bitmaps which don't get recycled. Here are some suggestions: BitmapFactory OOM driving me nuts

Community
  • 1
  • 1
Thommy
  • 5,070
  • 2
  • 28
  • 51
  • I can - and do - catch OutOfMemory Errors, but I can only do it when the OOM happens in my code when I am able to surround it by a try {}. IMHO this is a bug in MapView - they should handle the OOM and not just crash - This Question is intended to find a workaround – ligi Sep 18 '12 at 13:29