2013-03-09 34 views
0

我正在致力于基于大量位图的应用程序,现在问题在于,在应用程序测试期间,我在某些设备上运行时异常。基于位图的应用程序运行时间VM预算异常

这可能是由于位图大小超过了VM预算。

现在的问题是,我不能减少在Application.so中使用位图什么是可能的解决方案。

我曾尝试下面的链接,但没有成功。

http://voices.yahoo.com/android-virtual-machine-vm-out-memory-error-7342266.html

请帮助我。

+4

发布导致问题的代码分支 – DjHacktorReborn 2013-03-09 05:45:56

回答

1
This Happens because calling invalidate() just redraw same bitmaps on to the canvas.. 
use garbage collector just try to free memory when these bitmap getting overdraw this 
might help you...:-) 
0

您可以尝试使用不同的位图config加载位图。这可以通过选择不同的配置文件来帮助减小堆中加载的位图对象的大小。例如,如果您不需要保留alpha值,请使用RGB565 config。

Recyle bitmap;看看this,这是一个很好的阅读。

您可以在清单文件中指定

android:largeHeap="true" 

。这将为应用程序提供更多堆栈,但前提是可能。可用表单API 11以上。

您也可以尝试向用户显示缩小版本,并允许任何操作(如默认图库查看器应用程序所做的操作)。

此外,请检查您所得到的是“由于位图超出的VM预算”问题,因为您自己并不确定。

相关问题