应用程序/活动实例泄漏

问题描述

我需要帮助分析 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 (将#修改为@)