5

我们正在声明我们的泄漏金丝雀依赖项,如项目的 Github 页面上所述。

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1'

到目前为止,一切正常。现在我们开始排除这样的已知泄漏:

ExcludedRefs.Builder excludedRefsBuilder = AndroidExcludedRefs.createAppDefaults();
excludedRefsBuilder.staticField("com.google.android.chimera.container.a", "a");
refWatcher = LeakCanary.install(app, DisplayLeakService.class, excludedRefsBuilder.build());

现在,当我们切换到发布构建类型时,不再找到像 AndroidExcludedRefs、DisplayLeakService 和 ExcludedRefs 这样的类,因为“no-op”依赖项不包括它们。

处理这个问题的最佳方法是什么?

4

1 回答 1

2

我们的 LeakCanary 设置在名为 DevToolsController 的类中实现。为了解决这个问题,我们将默认实现放入“debug”源文件夹,将“no-op”实现放入“release”源文件夹。

于 2015-10-06T18:50:37.677 回答