I remember reading about a similar issue in the past and experienced the same issue as well. >From what i recall, but dont take my word for it, even if there is room in the heap and it isnt fragmented beyond belief, Dalvik first checks if the heap can be enlarged to include the needed space, instead of trying to use the space it has free.
Since you're already at 48MB, you've just pushed through the limit with the new needed allocation (regardless of the fact you have the space), and Dalvik throws the OutOfMemoryException. I had it happen to me as well. Only solution i've found? to never get the heap so large it sits on the edge (stupid bug, stupid solution, i know). I think Dianne Hackburn mentioned that, maybe a google search will find it. On Wednesday, November 21, 2012 5:18:33 PM UTC+2, Fran wrote: > > On 11/21/2012 03:58 PM, Mark Murphy wrote: > > First, you do not know necessarily what BitmapFactory.Options are being > specified on the decodeResource() call, as that does not appear to be > called from your code, and it could be they have strange values in there. > > Well, as far as my own code reaches (AndroidGraphics.java:77), I do set > these options. > > Options options = new Options(); > options.inPreferredConfig = Config.ARGB_8888; > options.inScaled = false; > > [...] > > bitmap = BitmapFactory.decodeResource(this.context.getResources(), > resourceId, options); > > Beyond that, last I knew, Dalvik does not have a compacting garbage > collector. I haven't seen a recent statement as to whether or not that > limitation has been fixed. If it is still the case, though, your issue may > not so much that you are out of memory, but that there is no single > contiguous block that meets your needs. > > Well, it may happen, but the evidence on that is really weak. The game has > just started and it is loading the main menu screen, with only a few > objects in memory, so it is unlikely that in these circunstances and with > 15Mb of free heap an image of just 1M5 as raw ARGB_8888 will not find an > slot. > > On Wed, Nov 21, 2012 at 9:48 AM, Francisco Marzoa > <[email protected]<javascript:> > > wrote: > >> Look at this: >> >> 0java.lang.OutOfMemoryError: (Heap Size=48547KB, Allocated=33541KB) 1at >> android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 2at >> android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:595) 3at >> com.badlogic.androidgames.framework.impl.AndroidGraphics.newPixmap(AndroidGraphics.java:77) >> >> 4at >> com.badlogic.androidgames.framework.impl.AndroidGraphics.newPixmap(AndroidGraphics.java:133) >> >> 5at >> net.iberdroid.ruletaafortunadacore.MainMenuScreen.loadImages(MainMenuScreen.java:255) >> >> 6at >> net.iberdroid.ruletaafortunadacore.MainMenuScreen.enable(MainMenuScreen.java:241) >> >> The image that I am trying to load at MainMenuScreen.java:255 >> >> The weird thing is that there is free heap enough for loading that image: >> it is a 800x480 png indexed but with transparency, so I load it using four >> bytes per pixel (ARGB) and it should use about 1M5 of memory as a raw >> bitmap... but it crashes anyway trying to load an image ten times smaller >> the available heap space (48-35 = 15Mb). >> >> These things makes me crazy... >> >> Bests, >> >> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to >> [email protected]<javascript:> >> To unsubscribe from this group, send email to >> [email protected] <javascript:> >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en > > > > > -- > Mark Murphy (a Commons Guy) > http://commonsware.com | http://github.com/commonsguy > http://commonsware.com/blog | http://twitter.com/commonsguy > > _The Busy Coder's Guide to Android Development_ Version 4.3 Available! > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to > [email protected]<javascript:> > To unsubscribe from this group, send email to > [email protected] <javascript:> > 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

