java - Android 内存泄漏问题

标签 java android memory-leaks

我的一个应用程序遇到内存泄漏问题,几个小时后,我决定创建一个新项目作为该应用程序的简化版本:

  • 该应用包含 2 个 Activity
  • 第一页xml有3个ImageView带有 src 和格式。该代码会监听对其中一个的点击并打开一个新 Activity (第二个 Activity )。
  • 第二个只有 2 ImageView s 和 2 EditText秒。 .java什么都不做
  • 我在 drawable 中只有 4 张图片
  • 这是一个新项目,仅添加了这两个 Activity 和一种新样式(只是全屏显示)

问题:

  • 点击收听ImageView给出 OOM 异常。
  • 堆大小约为 45 MB,已满 91%

更多详情:

  • 我试过内存分析器。我的类(class)只有 1 个实例。疑似问题(1 & 2 which account > 75%)是byte[]<system class loader> 加载
  • 我还在我的日志中发现错误“资源已在附加堆栈跟踪中获取但从未释放”,根据上述内容,这是没有意义的。

我为此花了一整天,并创建了无数新项目来测试它,但我仍然迷路了。我知道大多数人无法根据给定的信息提供答案,但是如果您能告诉我接下来的步骤,或者一些尝试找出问题的方法,那也算作答案 .

最佳答案

在您的应用程序标签中添加您的 AppManifest.xml 代码:

android:largeHeap="true"

这将尝试防止您的应用导致 OutOfMemoryError。

文档: http://developer.android.com/guide/topics/manifest/application-element.html#largeHeap

虽然这不是一个非常推荐的解决方案,但它应该仍然有效......

如果图片太大,您也可以尝试降低图片的分辨率。

如果问题仍然存在,我强烈建议检查此链接:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#load-bitmap

关于java - Android 内存泄漏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32160330/

相关文章:

java - Servlet 无法正常工作

android CallLog.Calls._ID 与联系人 ID 相同吗?

android - Admob 甚至在测试设备上转换真实广告。这是正常的吗?

iphone - 在我的 iPhone 应用程序项目中出现内存泄漏我应该如何解决它?

objective-c - UIWebview javascript泄漏?

MongoDB BulkWrite 内存成本

java - 持久化对象后,Hibernate assertEquals失败

java - 在 postgresql 9.3 中验证到 MATERIALIZED VIEW 的映射时出现 HibernateException

java - 如何将 RecyclerView 所有元素的背景更改为 SharedPreferences 保存的颜色?

android - react native AppState 在 Android 上没有 'inactive' 状态