最近我开始使用LeakCanary。我这是我的堆栈跟踪:
com.my.app.ui.menu.MenuActivity has leaked:
D/LeakCanary: * GC ROOT static org.acra.ACRA.errorReporterSingleton
D/LeakCanary: * references org.acra.ErrorReporter.lastActivityCreated
D/LeakCanary: * leaks com.my.app.ui.menu.MenuActivity instance
如果我正确理解,MenuActivity会在errorReporterSingleton字段中包含静态引用,对吗?我该如何解决此泄漏?
最佳答案
LeakCanary似乎是在告诉org.acra.ErrorReporter.lastActivityCreated
正在持有对com.my.app.ui.menu.MenuActivity
的引用。
LeakCanary错误。lastActivityCreated
是对上一个活动的弱引用。即,当没有强/直接引用时,它将被释放。