Android:java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM -


i want show bitmap image in imageview sd card stored already. after run application crash , getting outofmemoryerror error of:

(java.lang.outofmemoryerror: failed allocate 23970828 byte allocation 2097152 free bytes , 2mb until oom)

i have no idea or why out of memory. think image size large tried change it.

iterator<string> = imagearray.iterator(); while (it.hasnext()) {   object element = it.next();   string objelement = element.tostring();   log.e("objelement ", " = " + objelement);   final imageview imageview = new imageview (getcontext());   final progressbar pbar = new progressbar(getcontext(), null,                                             android.r.attr.progressbarstylesmall);   imageview.settag(it);   pbar.settag(it);    imageview.setimageresource(r.drawable.img_placeholder);   pbar.setvisibility(view.visible);    if (objelement.endswith(mp3_pattern)) {      log.e("mp3 ", " ends ");      pbar.setvisibility(view.gone);      imageview.setimageresource(r.drawable.audio_control);   }   if (objelement.endswith(png_pattern)) {      bitmap bitmap = bitmapfactory.decodefile(objelement);      int size = math.min(bitmap.getwidth(), bitmap.getheight());      int x = (bitmap.getwidth() - size) / 2;      int y = (bitmap.getheight() - size) / 2;      bitmap bitmap_resul = bitmap.createbitmap(bitmap, x, y, size, size);      log.e("bitmap_resul "," = "+ bitmap_resul);       if (bitmap_resul != bitmap) {         bitmap.recycle();      }      imageview.setimagebitmap(bitmap_resul);      log.e("png_pattern ", " ends ");      log.e(" bitmap "," = " + bitmap);   }    holder.linearlayout.addview(imageview);   holder.linearlayout.addview(pbar); 

the log cat information:

08-27 14:11:15.307    1857-1857/? e/androidruntime﹕ fatal exception: main     process: com.example.tazeen.classnkk, pid: 1857     java.lang.outofmemoryerror: failed allocate 23970828 byte allocation 2097152 free bytes , 2mb until oom             @ dalvik.system.vmruntime.newnonmovablearray(native method)             @ android.graphics.bitmap.nativecreate(native method)             @ android.graphics.bitmap.createbitmap(bitmap.java:812)             @ android.graphics.bitmap.createbitmap(bitmap.java:789)             @ android.graphics.bitmap.createbitmap(bitmap.java:709)             @ android.graphics.bitmap.createbitmap(bitmap.java:634)             @ com.example.tazeen.classnkk.allposts_page$mylistadapter.getview(allposts_page.java:357)             @ android.widget.abslistview.obtainview(abslistview.java:2347)             @ android.widget.listview.makeandaddview(listview.java:1864)             @ android.widget.listview.filldown(listview.java:698)             @ android.widget.listview.fillfromtop(listview.java:759)             @ android.widget.listview.layoutchildren(listview.java:1659)             @ android.widget.abslistview.onlayout(abslistview.java:2151)             @ android.view.view.layout(view.java:15671)             @ android.view.viewgroup.layout(viewgroup.java:5038)             @ android.widget.linearlayout.setchildframe(linearlayout.java:1703)             @ android.widget.linearlayout.layoutvertical(linearlayout.java:1557)             @ android.widget.linearlayout.onlayout(linearlayout.java:1466)             @ android.view.view.layout(view.java:15671)             @ android.view.viewgroup.layout(viewgroup.java:5038)             @ android.widget.framelayout.layoutchildren(framelayout.java:579)             @ android.widget.framelayout.onlayout(framelayout.java:514)             @ android.view.view.layout(view.java:15671)             @ android.view.viewgroup.layout(viewgroup.java:5038)             @ android.widget.linearlayout.setchildframe(linearlayout.java:1703)             @ android.widget.linearlayout.layoutvertical(linearlayout.java:1557)             @ android.widget.linearlayout.onlayout(linearlayout.java:1466)             @ android.view.view.layout(view.java:15671)             @ android.view.viewgroup.layout(viewgroup.java:5038)             @ android.widget.framelayout.layoutchildren(framelayout.java:579)             @ android.widget.framelayout.onlayout(framelayout.java:514)             @ android.view.view.layout(view.java:15671)             @ android.view.viewgroup.layout(viewgroup.java:5038)             @ android.view.viewrootimpl.performlayout(viewrootimpl.java:2086)             @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1843)             @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:1061)             @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:5885)             @ android.view.choreographer$callbackrecord.run(choreographer.java:767)             @ android.view.choreographer.docallbacks(choreographer.java:580)             @ android.view.choreographer.doframe(choreographer.java:550)             @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:753)             @ android.os.handler.handlecallback(handler.java:739)             @ android.os.handler.dispatchmessage(handler.java:95)             @ android.os.looper.loop(looper.java:135)             @ android.app.activitythread.main(activitythread.java:5257)             @ java.lang.reflect.method.invoke(native method)             @ java.lang.reflect.method.invoke(method.java:372)             @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903)             @ com.android.internal.os.zygoteinit.main(zygoteinit.java:698) 

outofmemoryerror common problem occured in android while dealing bitmaps. error thrown java virtual machine (jvm) when object cannot allocated due lack of memory space , also, garbage collector cannot free space.

as mentioned aleksey, can add below entities in manifest file android:hardwareaccelerated="false" , android:largeheap="true" work environment's.

<application     android:allowbackup="true"     android:hardwareaccelerated="false"     android:icon="@mipmap/ic_launcher"     android:label="@string/app_name"     android:largeheap="true"     android:supportsrtl="true"     android:theme="@style/apptheme"> 

you should definately read of androids developer concept's, specially here:displaying bitmaps efficiently

read 5 topics , rewrite code again. if still doesn't work happy see you've done wrong tutorial material.

here of possible answers these type of errors in sof

android: bitmapfactory.decodestream() out of memory 400kb file 2mb free heap

how solve java.lang.outofmemoryerror trouble in android

android : java.lang.outofmemoryerror

java.lang.outofmemoryerror

solution outofmemoryerror: bitmap size exceeds vm budget


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -