最近我开始使用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
是对上一个"活动"的弱引用。也就是说,它将在没有强/直接引用的情况下发布。