问题描述
我需要帮助分析 LeakCanary 堆栈跟踪。究竟是什么地方泄漏了?
描述:当应用启动时,com.myapp.Background.LifecycleMgmt.Application 的一个实例被调用。在那里记录和存储所有活动生命周期事件(onActivityCreated 和 onActivityDestroyed)。 com.myapp.Activities.Login 活动似乎在这里引起了一些问题。由于所有活动都是单个实例,我也在 com.myapp.Background.LifecycleMgmt.Application 中保留对活动的引用。
16919874 bytes retained by leaking objects
Signature: d248be424a30809e9c4eb8c3aa1239b8aade385f
┬───
│ GC Root: System class
│
├─ com.google.android.gms.common.wrappers.InstantApps class
│ Leaking: NO (Application↓ is not leaking and a class is never leaking)
│ ↓ static InstantApps.zza
├─ com.myapp.Background.LifecycleMgmt.Application instance
│ Leaking: NO (Application is a singleton)
│ mBase instance of android.app.ContextImpl
│ ↓ Application.mLoadedApk
│ ~~~~~~~~~~
├─ android.app.LoadedApk instance
│ Leaking: UNKNOWN
│ Retaining 16.9 MB in 75344 objects
│ mApplication instance of com.myapp.Background.LifecycleMgmt.Application
│ ↓ LoadedApk.mReceivers
│ ~~~~~~~~~~
├─ android.util.ArrayMap instance
│ Leaking: UNKNOWN
│ Retaining 16.9 MB in 75331 objects
│ ↓ ArrayMap.mArray
│ ~~~~~~
├─ java.lang.Object[] array
│ Leaking: UNKNOWN
│ Retaining 16.9 MB in 75329 objects
│ ↓ Object[].[4]
│ ~~~
╰→ com.myapp.Activities.Login instance
Leaking: YES (ObjectWatcher was watching this because com.myapp.Activities.Login received
Activity#onDestroy() callback and Activity#mDestroyed is true)
Retaining 16.9 MB in 75251 objects
key = 84e153c7-7ba2-40df-9d20-dc51b28d4810
watchDurationMillis = 5901
retainedDurationMillis = 900
mApplication instance of com.myapp.Background.LifecycleMgmt.Application
mBase instance of androidx.appcompat.view.ContextThemeWrapper
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)