我应该如何避免内存不足错误?

时间:2014-06-16 15:54:29

标签: android animation out-of-memory

在加载我的帧动画时,我在android中遇到了可怕的oom错误,我在hdpi,mdpi和xhdpi文件夹中有所有相应的图像,但是在加载每个动画几次后应用程序会崩溃。  我的设置是一个带有4个图像按钮的活动,每个图像按钮将用户带到不同的活动,并使用不同的动画,我让android后退按钮处理回到4个图像按钮,这个工作和每个动画很好地显示但是如果我打开一个,按回然后打开另一个,最后(打开每一个两次并按回来关闭它们)应用程序崩溃与oom,我已经搜索了很多这个我认为我的图像没有错,最大的动画是mdpi为240x408的17张幻灯片和hdpi的1.5倍幻灯片,我猜测垃圾收集器没有被调用或者不被称为我已经足够快地调用但是我已经读过你不应该明确地调用它,我的动画也不在任何线程中,因为我读取的帧动画应该在ui线程上,所以我的问题是给出的场景我怎么做避免这种内存不足错误?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

一些提示:

  • 检查logcat是否有GC错误消息,以了解有关OOM异常的更多信息。

  • 确保所有图片都已正确回收(当您不再需要时,请在Bitmap对象上调用recycle())。

  • 使用heap profiling查看您是否有意外的对象保留(内存泄漏)。

  • 您可以通过将android:largeHeap="true"添加到AndroidManifest.xml的<application>标记来为应用提供更多堆。这适用于Android 3.0及更高版本。在早期的Android版本中会被忽略。

相关问题