首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证LeakCanary是否正常工作--在日志记录中看不到LeakCanary

如何验证LeakCanary是否正常工作--在日志记录中看不到LeakCanary
EN

Stack Overflow用户
提问于 2019-06-23 17:05:15
回答 2查看 2K关注 0票数 0

我有一个遗留的项目

  • 在Java中
  • 还没有迁移到AndroidX

最近,它正在生产神秘的OutOfMemoryException

我们使用以下方法来找出根本原因

代码语言:javascript
复制
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'
implementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'

我们还在refWatcher = LeakCanary.install(this);Application's onCreate中将其命名为onCreate

但是,在完成上述所有操作并在仿真程序中运行之后,我们使用

D/LeakCanary

但是,我们没有看到任何关于LeakCanary的日志。

我们遗漏了什么吗?

但是,我们看到0输出。

还有什么是我们遗漏的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-25 09:15:04

你不需要添加

代码语言:javascript
复制
implementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'

泄漏金丝雀所需的唯一依赖是:

代码语言:javascript
复制
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'

之后,在Application onCreate方法中添加以下代码:

代码语言:javascript
复制
@Override
public void onCreate() {
    super.onCreate();

    if (LeakCanary.isInAnalyzerProcess(this)) {
        // This process is dedicated to LeakCanary for heap analysis.
        // You should not init your app in this process.
        return;
    }
    LeakCanary.install(this);

    // rest of your init code
}

之后将安装一个带有以下图标的应用程序:

现在你只需要运行你的应用程序。当内存泄漏发生时,将显示一个对话框,显示泄漏被检测到。

当您打开具有上述图标的应用程序时,您将看到内存泄漏和泄漏跟踪:

票数 3
EN

Stack Overflow用户

发布于 2020-08-04 12:21:44

LeakCanary库现在升级到2.x版本。

要使用LeakCanary,请将泄漏的金丝雀-android依赖项添加到应用程序的build.gradle文件中:

代码语言:javascript
复制
dependencies {
  // debugImplementation because LeakCanary should only run in debug builds.
  debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.4'
}

就是这样,根本不需要修改代码!

通过对Logcat中的LeakCanary标记进行筛选,确认LeakCanary在启动时运行:

代码语言:javascript
复制
D LeakCanary: LeakCanary is running and ready to detect leaks

来源:started/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56726120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档