Mr.*_*aks 8 android memory-leaks leakcanary
我正在尝试使用 LeakCanary 修复内存泄漏,老实说,我无法理解向我展示的堆栈跟踪。我正在使用 firebase 分页选项并停止监听该onDestroy方法。我也没有将任何活动或上下文传递给适配器,所以我确信这没有问题。以下是来自 LeakCanary 的日志。
HEAP ANALYSIS RESULT
====================================
1 APPLICATION LEAKS
References underlined with "~~~" are likely causes.
Learn more at https://squ.re/leaks.
31417285 bytes retained by leaking objects
Signature: 31c372d2f2d3d219e828763d8f853ceca5851b
????
? GC Root: System class
?
?? leakcanary.internal.InternalLeakCanary class
? Leaking: NO (HomeBuyersActivity? is not leaking and a class is never leaking)
? ? static InternalLeakCanary.resumedActivity
?? com.dreamakers.coonna.Activity.HomeBuyersActivity instance
? Leaking: NO (Activity#mDestroyed is false)
? ? HomeBuyersActivity.mLifecycleRegistry
? ~~~~~~~~~~~~~~~~~~
?? androidx.lifecycle.LifecycleRegistry instance
? Leaking: UNKNOWN
? ? LifecycleRegistry.mObserverMap
? ~~~~~~~~~~~~
?? androidx.arch.core.internal.FastSafeIterableMap instance
? Leaking: UNKNOWN
? ? FastSafeIterableMap.mEnd
? ~~~~
?? androidx.arch.core.internal.SafeIterableMap$Entry instance
? Leaking: UNKNOWN
? ? SafeIterableMap$Entry.mKey
? ~~~~
?? com.dreamakers.coonna.Adapter.DiscoverStoreAdapter instance
? Leaking: UNKNOWN
? ? DiscoverStoreAdapter.mParser
? ~~~~~~~
?? com.dreamakers.coonna.Activity.HomeFragment$11 instance
? Leaking: UNKNOWN
? Anonymous class implementing com.firebase.ui.firestore.SnapshotParser
? ? HomeFragment$11.this$0
? ~~~~~~
?? com.dreamakers.coonna.Activity.HomeFragment instance
? Leaking: YES (ObjectWatcher was watching this because com.dreamakers.coonna.Activity.HomeFragment received Fragment#onDestroy() callback and Fragment#mFragmentManager is null)
? key = 6e0451ae-0c0b-4de8-8993-011515e95a80
? watchDurationMillis = 6238
? retainedDurationMillis = 1238
====================================
0 LIBRARY LEAKS
A Library Leak is a leak caused by a known bug in 3rd party code that you do not have control over.
See https://square.github.io/leakcanary/fundamentals-how-leakcanary-works/#4-categorizing-leaks
====================================
METADATA
Run Code Online (Sandbox Code Playgroud)
HomeFragment 已被销毁,应该进行垃圾收集,但无法进行垃圾收集,因为 DiscoverStoreAdapter 已在 HomeBuyersActivity 上注册为生命周期侦听器,并且 DiscoverStoreAdapter 有一个 mParser 字段,该字段是在 HomeFragment 中实现 SnapshotParser 的匿名类。
没有代码很难说,但是当片段被销毁时,DiscoverStoreAdapter.mParser 可能应该设置为 null。
| 归档时间: |
|
| 查看次数: |
3816 次 |
| 最近记录: |