【问题标题】:Memory leak caused by java.lang.ref.FinalizerReferencejava.lang.ref.FinalizerReference 导致的内存泄漏
【发布时间】:2012-11-20 12:35:45
【问题描述】:

当启动 com.android.gallery3d 并按下返回键大约 2000 次时,我得到了 java.lang.OutOfMemoryError 异常。 android 4.0.4中com.android.gallery3d的dump heap。使用MAT分析发现java.lang.ref.FinalizerReference被嵌套调用。什么可能导致这种嵌套调用?

android.app.ContextImpl @ 0x418f8c98
android.media.AudioManager @ 0x419495c8
android.media.AudioManager$1 @ 0x41949688
java.lang.ref.FinalizerReference @ 0x419496a8
java.lang.ref.FinalizerReference @ 0x419496e8
java.lang.ref.FinalizerReference @ 0x41949800
java.lang.ref.FinalizerReference @ 0x41949848
java.lang.ref.FinalizerReference @ 0x41949890
java.lang.ref.FinalizerReference @ 0x419498d8
java.lang.ref.FinalizerReference @ 0x41949920
java.lang.ref.FinalizerReference @ 0x419499b0
java.lang.ref.FinalizerReference @ 0x419499f8
java.lang.ref.FinalizerReference @ 0x41949a40
java.lang.ref.FinalizerReference @ 0x41949a88
java.lang.ref.FinalizerReference @ 0x41949ad0
java.lang.ref.FinalizerReference @ 0x4194a5a8
java.lang.ref.FinalizerReference @ 0x4194af48
java.lang.ref.FinalizerReference @ 0x4194b878

【问题讨论】:

  • 你能解决这个问题吗?我也有同样的问题。

标签: java android


【解决方案1】:

我的应用程序中出现了这些症状,结果证明与内存泄漏有关。 我曾经注册一个从活动到单例对象的回调。活动的销毁等待回调。

【讨论】:

    【解决方案2】:

    在我的例子中,我在自定义 SurfaceView 的重写 onDraw 方法中创建了一个新的(尽管很小)对象。

    【讨论】:

      猜你喜欢
      • 2015-07-06
      • 2014-06-07
      • 2013-11-20
      • 2011-10-28
      • 2016-01-18
      • 2012-12-13
      • 1970-01-01
      • 2011-01-08
      • 2011-02-01
      相关资源
      最近更新 更多