【发布时间】:2013-05-31 13:39:31
【问题描述】:
我使用 ZXing 库编写了一个 Android 应用程序,我得到了一个java.lang.OutOfMemoryError。
首先,我确定错误就在我身上,因此我使用了 Patrick Dubroy Google I/O 2011: Memory management for Android Apps 和其他几个关于如何追踪内存泄漏的教程(如 Android Memory Leaks OR Different Ways to Leak)的 Eclipse 内存分析器 (MAT)。
在 MAT 中,我发现随着时间的推移,数百个 com.google.zxing.common.BitMatrix 实例占用了我的大部分堆内存。
令人惊讶的是,我在原来的ZXing测试程序“CaptureActivity”中遇到了同样的问题!
经过一番调查,我发现DecodeHandler 类中的活动引用可能会阻止垃圾收集器释放BitMatrix。但我的经验太少,无法验证这一点。此外,我很惊讶在原来的 ZXing 库(2.1 版)中发现了这个问题。
任何人都可以重现或曾经经历过这种现象吗?
【问题讨论】:
-
我从未见过内存泄漏的证据,也想不出一个可以保存引用的地方。它从哪里显示这些是从哪里引用的?
-
这与这个问题有什么关系?
标签: android memory-leaks garbage-collection zxing eclipse-memory-analyzer