Well, each process is assigned a max heap size which varies from device to device. And since it is an error, your catch blocks would not be able to catch this. And also, calling gc might be able to help you if the bitmap size exceed the allocated heap size anyway.
One workaround would be to scale your bitmap to a create a smaller sized image which would in turn take up less space on the heap. Here is the way to do it. BitmapFactory.Options bmpBuffer = new BitmapFactory.Options(); bmpBuffer.inSampleSize = 4; Bitmap bmp = BitmapFactory.decodeFile(path, bmpBuffer); This would make your bitmaps 1/4 th of the original size and hence would take up 1/4th space as well. Thanks and Regards, Kumar Bibek http://tech-droid.blogspot.com On Jun 8, 11:44 pm, Stephen Eilert <spedr...@gmail.com> wrote: > On Tue, Jun 8, 2010 at 3:39 PM, Greg Donald <gdon...@gmail.com> wrote: > > I used this sort of code to make sure my bitmaps load: > > > try > > { > > foo = BitmapFactory.decodeResource( resources, R.drawable.foo ); > > } > > catch( Exception e ) > > { > > System.gc(); > > foo = BitmapFactory.decodeResource( resources, R.drawable.foo ); > > } > > > In 2.2, it's now failing sometimes and my catch block no longer > > catches anything. Why would that be? > > > Is there a better way to avoid a java.lang.OutOfMemoryError ? > > Is Dalvik such a crappy virtual machine that it can't be bothered to > run the garbage collector before spitting out an OutOfMemory > exception? > > -- Stephen > > Sent from my Emacs -- 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