Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid: BitmapFactory.decodeStream() out of memory with a 400KB file with 2MB free heap
    primarykey
    data
    text
    <p>My app is hitting an OOM error at the following line in the source:</p> <pre><code>image = BitmapFactory.decodeStream(assetManager.open(imgFilename)); </code></pre> <p>Just before the allocation that causes the app to be killed with an OOM error:</p> <pre><code>(...) 08-05 21:22:12.443: I/dalvikvm-heap(2319): Clamp target GC heap from 25.056MB to 24.000MB 08-05 21:22:12.443: D/dalvikvm(2319): GC_FOR_MALLOC freed &lt;1K, 50% free 2709K/5379K, external 18296K/19336K, paused 58ms 08-05 21:22:14.513: D/dalvikvm(2319): GC_EXTERNAL_ALLOC freed &lt;1K, 50% free 2709K/5379K, external 18296K/19336K, paused 101ms 08-05 21:22:14.903: I/dalvikvm-heap(2319): Clamp target GC heap from 25.073MB to 24.000MB 08-05 21:22:14.903: D/dalvikvm(2319): GC_FOR_MALLOC freed 0K, 50% free 2709K/5379K, external 18312K/19336K, paused 53ms 08-05 21:22:22.843: D/ddm-heap(2319): Heap GC request 08-05 21:22:22.963: I/dalvikvm-heap(2319): Clamp target GC heap from 25.073MB to 24.000MB 08-05 21:22:22.963: D/dalvikvm(2319): threadid=1: still suspended after undo (sc=1 dc=1) 08-05 21:22:22.963: D/dalvikvm(2319): GC_EXPLICIT freed 1K, 50% free 2710K/5379K, external 18312K/19336K, paused 116ms </code></pre> <p>DDMS reports a similar picture about the state of the heap:</p> <pre><code>Heap Size: 5.254 MB Allocated: 2.647 MB Free: 2.607 MB %Used: 50.38% #Objects 49,028 </code></pre> <p>Single stepping over this line results in an OOM error:</p> <pre><code>08-05 21:26:04.783: D/dalvikvm(2319): GC_EXTERNAL_ALLOC freed &lt;1K, 50% free 2710K/5379K, external 18312K/19336K, paused 57ms 08-05 21:26:05.023: E/dalvikvm-heap(2319): 2097152-byte external allocation too large for this process. 08-05 21:26:05.163: I/dalvikvm-heap(2319): Clamp target GC heap from 25.073MB to 24.000MB 08-05 21:26:05.163: E/GraphicsJNI(2319): VM won't let us allocate 2097152 bytes 08-05 21:26:05.163: D/dalvikvm(2319): GC_FOR_MALLOC freed 0K, 50% free 2710K/5379K, external 18312K/19336K, paused 30ms 08-05 21:26:05.283: D/skia(2319): --- decoder-&gt;decode returned false </code></pre> <ol> <li>The size of the file referenced by "imgFileName" is reported to be &lt; 400K on Windows. So why does BitmapFactory.decodeStream try to allocate 2MB?</li> <li>Why is there an OOM error when there seems to be enough free space?</li> </ol> <p>This app is targeting Android 2.2 and up.</p> <p>Thanks in advance!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload