ACRA 和 LeakCanary

ACRA and LeakCanary

最近我开始使用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 是对最后一个 Activity 的 引用。即当没有 strong/direct 个引用时它会被释放。