当前位置: 代码迷 >> Android >> 真集图片内存泄露,如何解决
  详细解决方案

真集图片内存泄露,如何解决

热度:94   发布时间:2016-05-01 17:47:18.0
真集图片内存泄露,怎么解决?
06-27 13:54:49.702: E/dalvikvm-heap(6414): 26496-byte external allocation too large for this process.
06-27 13:54:49.702: E/GraphicsJNI(6414): VM won't let us allocate 26496 bytes
06-27 13:54:49.702: E/Bitmap(6414): nativeCreate,createBitmap OutOfMemoryError
06-27 13:54:49.714: W/dalvikvm(6414): threadid=1: thread exiting with uncaught exception (group=0x400257f0)
06-27 13:54:49.722: E/AndroidRuntime(6414): FATAL EXCEPTION: main
06-27 13:54:49.722: E/AndroidRuntime(6414): java.lang.NullPointerException
06-27 13:54:49.722: E/AndroidRuntime(6414): at android.graphics.Bitmap.createBitmap(Bitmap.java:460)
06-27 13:54:49.722: E/AndroidRuntime(6414): at android.graphics.Bitmap.createBitmap(Bitmap.java:376)
06-27 13:54:49.722: E/AndroidRuntime(6414): at com.lc.runfasta.GameView.CreateCard(GameView.java:1687)
06-27 13:54:49.722: E/AndroidRuntime(6414): at com.lc.runfasta.GameView.onDraw(GameView.java:562)

在模拟器上、中兴的一款机器上都没有这个报错,但是在华为的一款机器上就会报错。
我的图片是320*480的,经过自适应拉伸适合480*800的。
就是在分辨率调整之后出现的这个问题,之前没有出现过。

各位,有遇到类似的问题么?
我试探着把这张用过的图片 ,使用过后直接tempbmp.recycle(),也不行啊,因为这张图片反复用很多次。

------解决方案--------------------
不是机器的问题。OOM是内存不够,不是recycle就可以的。可以使用java的软引用来解决OOM的问题。或者大量图片使用gallery让系统来解决。
------解决方案--------------------
这个貌似是android上对所有Bitmap对象的总内存限制引起的问题吧
------解决方案--------------------
不同的手机平台,可能会根据自身内存的情况,修改Bitmap可使用的内存上限。
  相关解决方案