Ahm*_*lan 6 java android exception bitmap out-of-memory
在设置内容视图时,我遇到了这个异常.我已经尝试通过以下方式处理此异常:
try{
setContentView(R.layout.activity_main);
}catch (OutOfMemoryError e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
在测试时,这个例外在100次约为5次.但我无法解决这个问题.或者我的QA团队将在此杀死我:(
Jim*_*Jim 11
有几种方法可以解决此类错误.通常是因为您的图像分辨率在布局上太高.以下是您的选择:
要求较低分辨率的图像(较少的像素).这可能是不可接受的,但你的团队应该意识到内存限制.
从布局中删除图像,但保留ImageView元素(如果有).如果是背景,请删除背景.然后使用java有效地加载图像.在加载之前,您需要测量想要图像的元素的屏幕尺寸和/或尺寸.Android文档在这里有一个很好的例子:
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
heapSize:您也可能在另一个屏幕上引用图像或者有内存泄漏,在这种情况下,您需要查看在此之前调用的任何/所有代码(包括其他活动)以查找这些泄漏的位置.可能的原因是诸如传递Activity给后台线程或服务而不是仅传递它的Context,创建对图像的静态引用,不WeakReference用于处理传递给其他线程/进程的大型内存对象,或其他不寻常的引用对象的方法.