我使用 ZXing 库编写了一个 Android 应用程序,我得到了一个java.lang.OutOfMemoryError
.
首先,我确信错误已经结束,所以我使用了 Eclipse Memory Analyzer (MAT),根据 Patrick Dubroy Google I/O 2011: Memory management for Android Apps和其他几个关于如何追踪内存泄漏的教程,比如Android 内存泄漏或不同的泄漏方式。
在 MAT 中,我发现随着时间的推移,数百个实例com.google.zxing.common.BitMatrix
占用了我的大部分堆内存。
令人惊讶的是,我在原来的ZXing测试程序“CaptureActivity”中遇到了同样的问题!
经过一番调查,我知道DecodeHandler
类中的活动引用可能会阻止垃圾收集器释放BitMatrix
. 但我的经验太少,无法验证这一点。此外,我很惊讶在原来的 ZXing 库(2.1 版)中发现了这个问题。
任何人都可以重现这种现象或曾经经历过这种现象吗?