OutOfMemory错误Android

时间:2012-10-11 08:40:40

标签: android

我正在开发一个图像处理应用程序,其中我有一个包含多个图像的相册文件夹。

项目中也可以有多个专辑。 在启动应用程序时,有一个专辑列表。在选择专辑时,将显示包含在该专辑中的图像的gallarey视图。

如果我们选择任何图像而不是启动新活动,您可以在其中绘制所选图像(即,您可以在图像上绘制线条或形状)。 您还可以使用相机或图库将图像添加到相册。 现在我面临的问题是app工作正常。但我无法处理OutOfMemory错误。 我尝试了很多东西。如

  1. 调整图片大小。
  2. 销毁活动。
  3. 将应用程序上下文用于数据库助手类。

2 个答案:

答案 0 :(得分:0)

你必须选择在android中使用图像:   - 使用java和SDK   - 使用本机代码和NDK

如果您只想使用SDK,请尝试使用inSampleSize对资源图像进行采样。除了采样图像,还要确保在使用后正确回收图像资源,并且应用程序中没有内存泄漏。您可以使用MAT来发现内存泄漏。

或者您可以使用NDK编写代码。使用本机代码时,与java相比,您在其中创建的对象位于本机堆中。

答案 1 :(得分:0)

OOM(OutOfMemory)问题总是由于对Bitmap Object的处理不当造成的。所以你所尝试的(调整大小,破坏活动,等等)无法解决OOM问题。

解决OOM的更好方法是根据设备的分辨率密度将图像加载到内存中。 Goole Android培训课程中有一章讨论如何有效地加载大图像。它可以在这里提到

https://developer.android.com/training/displaying-bitmaps/load-bitmap.html

希望这会对你有帮助!