Thank you, this is exactly the sort of workaround I was looking for. I just filed the Media Recorder release bug, since the first bug got closed so fast.
http://code.google.com/p/android/issues/detail?id=5047 On Nov 25, 11:43 am, Matt Hall <matt.h...@gmail.com> wrote: > Yeah, we've had a similar issue before. One thing you can try is to call > recycle() on the last frame of your animation before you replace it. This is > normally called by the garbage collector and works fine when you're not > close to the memory limit, but it sounds like there might be cases where you > temporarily go over the limit and the GC doesn't get to the bitmaps in time. > > Matt > > On Wed, Nov 25, 2009 at 2:37 PM, Matt Kanninen <mathias...@gmail.com> wrote: > > Matt, > > > So in this case I definitely am frequently loading and unloading small > > images. Those 10 id's all point at different states in our > > animation. I can reduce the quality of our animation by reducing the > > views, and decrease how often I stumble down this cow path: > > > but I only posted this stack trace because it was new, this happens > > anytime my app is run for more then half an hour, or 5 mins on the > > droid. The droid uses the same apk, same images, and 2 slightly > > different xmls (we added margins to our Droid xml). > > >http://groups.google.com/group/android-developers/browse_thread/threa... > > > or to quote myself: > > " > > If my app runs for more then half an hour on the G1 it will fail on > > inflating views from xml, giving an error about insufficient memory > > creating a bitmap. Another issue, which may be a side effect is that > > global static strings that are assigned at startup become null. > > > I have worked around that by throwing up setters around those statics > > that also store them as a private preference, and thrown up getters > > that read the preference in case of null. > > > The root cause of all of my issues may be that when I call release on > > my MediaRecorder it sometimes hangs. No crash it just never returns, > > stalling the thread. I have worked around that by calling release in > > a thread that only does that. > > > Is anyone else seeing and working around issues like these? I could > > use some advice. > > " > > > -Matt K > > > On Nov 25, 10:07 am, Matt Hall <matt.h...@gmail.com> wrote: > > > How big (dimensions) are the graphics Matt? If they're not very big > > > then I'm guessing you have bitmap memory used elsewhere in the app > > > that's putting you close to the max. Bitmap memory is different than > > > your heap memory, so it's management is hidden from you a little more > > > but basically this error means you have too many graphics loaded at > > > once, or are unloading and loading a lot of graphics in a row so the > > > finalizer can't reclaim the bitmap memory in time. > > > > Matt > > > > On Nov 25, 12:46 pm, Matt Kanninen <mathias...@gmail.com> wrote: > > > > > <a href="http://code.google.com/p/android/issues/detail?id=5045">Issue > > > > 5045</a> > > > > >http://code.google.com/p/android/issues/detail?id=5045 > > > > > On Nov 25, 9:37 am, Matt Kanninen <mathias...@gmail.com> wrote: > > > > > > This: > > > > > private static final int[] glowDrawableIds={ > > > > > R.drawable.graphic_microphoneglow_01, > > > > > R.drawable.graphic_microphoneglow_02, > > > > > R.drawable.graphic_microphoneglow_03, > > > > > R.drawable.graphic_microphoneglow_04, > > > > > R.drawable.graphic_microphoneglow_05, > > > > > R.drawable.graphic_microphoneglow_06, > > > > > R.drawable.graphic_microphoneglow_07, > > > > > R.drawable.graphic_microphoneglow_08, > > > > > R.drawable.graphic_microphoneglow_09, > > > > > R.drawable.graphic_microphoneglow_10 > > > > > }; > > > > > ... > > > > > View glow = findViewById(R.id.glow); > > > > > .. > > > > > > glow.setBackgroundResource(glowDrawableIds[scale]); > > > > > > is causing > > > > > > 11-25 09:21:02.046: WARN/UsageStats(1018): Failed to persist new > > stats > > > > > 11-25 09:21:02.694: DEBUG/dalvikvm(2386): GC freed 298 objects / > > 15656 > > > > > bytes in 61ms > > > > > 11-25 09:21:02.952: ERROR/dalvikvm-heap(2386): 1111680-byte external > > > > > allocation too large for this process. > > > > > 11-25 09:21:02.952: ERROR/(2386): VM won't let us allocate 1111680 > > > > > bytes > > > > > 11-25 09:21:02.952: DEBUG/AndroidRuntime(2386): Shutting down VM > > > > > 11-25 09:21:02.952: WARN/dalvikvm(2386): threadid=3: thread exiting > > > > > with uncaught exception (group=0x4001b180) > > > > > 11-25 09:21:02.952: ERROR/AndroidRuntime(2386): Uncaught handler: > > > > > thread main exiting due to uncaught exception > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): > > > > > java.lang.OutOfMemoryError: bitmap size exceeds VM budget > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.graphics.Bitmap.nativeCreate(Native Method) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.graphics.Bitmap.createBitmap(Bitmap.java:468) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.graphics.Bitmap.createBitmap(Bitmap.java:435) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:462) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java: > > > > > 323) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.graphics.drawable.Drawable.createFromResourceStream > > > > > (Drawable.java:697) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.content.res.Resources.loadDrawable(Resources.java:1705) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.content.res.Resources.getDrawable(Resources.java:580) > > > > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386): at > > > > > android.view.View.setBackgroundResource(View.java:7187) > > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to android-developers@googlegroups.com > > To unsubscribe from this group, send email to > > android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com> > > For more options, visit this group at > >http://groups.google.com/group/android-developers?hl=en > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en