问题标签 [leakcanary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
417 浏览

android - 尽管我在离开活动时正在释放资源,但泄露了上下文

我有一个Fragment里面Activity我正在使用一个名为的库ExoMedia,你可以在 github 上查看它它是 google 的ExoPlayer.

在这个片段中,我声明了两个字段:

后来我实例化它们:

在哪里onDestroy我试图让它们都为空,这样它们Context在泄漏 Activity 时就不会泄漏任何东西:

但是当我退出时,我仍然Activity收到了LeakCanary泄漏的报告Context

所以我有两个问题:

a) 我做的不onDestroy()正确:将 VideoControls 对象设置为 null,这样它就不会保持活动状态并泄漏内存。

b)这是一个错误还是我忘记发布某些内容并导致我出现此错误?

谢谢

0 投票
2 回答
4370 浏览

java - 泄漏金丝雀不工作

我想将泄漏金丝雀添加到测试项目中。我创建了一个项目并执行了此视频中的步骤:https ://www.youtube.com/watch?v=2VKBjlHtKMY

当我尝试时,模拟器 Nexus_5X_API_23 中出现wrongWay()消息“Dumping Memory app will freeze” 。当我尝试rightWay()时,也会出现相同的消息。作者使用. _rightWay()

我不明白为什么?

我在哪里可以找到关于 Leak Canary 或其他泄漏内存库的好教程。

所以 build.gradle 是:

AndroidManifest.xml

LeakCanaryApplication.java

MainActivity.java

0 投票
4 回答
1451 浏览

android - android - 即使在 onDestroy() 方法中将实例设置为空,活动仍然会泄漏

我的主要活动(NavigationActivity)中存在内存泄漏

它在哪里泄漏?我该如何解决?任何帮助,将不胜感激。非常感谢。

我正在使用泄漏金丝雀,这就是泄漏 在此处输入图像描述

0 投票
1 回答
275 浏览

android - Leakcanary 未解决的图标

我正在尝试构建我的自定义 buildType,如下所示:

在调试版本中,一切正常,但是一旦我尝试构建发布版或测试版,就会出现此错误:

我看到合并的清单包含以下条目:

我做错了什么?我已阅读常见问题解答部分并正确地将 betaCompile 条目包含到我的 gradle 文件中,所以现在看起来如下:

我试图清理/重建项目,但错误仍然存​​在。此外,如果我从应用程序中删除leakcanary代码并从gradle文件中删除依赖项,我仍然会收到此错误,这很奇怪,因为项目中根本不应该存在leakcanary。

有什么想法吗?

0 投票
4 回答
3417 浏览

android - 凌空请求的匿名侦听器导致内存泄漏

我正在使用 volley 库进行网络服务调用。我制作了一个通用类,用于进行所有 Web 服务调用并从那里进行服务调用,并为成功和错误响应创建了匿名侦听器。

但是当我使用泄漏金丝雀时,它显示与上下文相关的内存泄漏。下面是我的代码片段:

我创建了一个名为响应侦听器的接口,用于将响应重定向到活动或片段。我提出如下要求。

但我面临内存泄漏:

任何消除此泄漏的想法都值得赞赏。

0 投票
2 回答
164 浏览

android - Google PlusOneButton 泄露了上下文

我已经开始在我的 Android 应用程序上跟踪内存泄漏,并且感谢伟大的LeakCanary库,我发现我的一些包含 a 的活动GooglePlusButton正在泄漏上下文。

不幸的是,我没有找到避免它的解决方法。正如这个旧的错误报告所述,初始化方法隐藏了它需要上下文的事实。此外,它需要一个 Activity 上下文;Android工作室反编译器显示它(错误报告者也告诉它):

有没有比完全摆脱 +1 按钮更好的解决方法?

注意:我使用的是 Google Play Services 9.6.0,但这个问题也发生在以前的版本上。

0 投票
1 回答
972 浏览

android - LeakCanary 通过 locationlistener 的匿名实现报告泄露的活动实例

在 onDestroy

匿名实现

LocationManager 和 LocationListener 导入自

我使用后退按钮离开活动,所以我尝试覆盖 onBackPressed,并从 onBackPressed 中的 locationManager 中删除更新,但我得到了同样的泄漏。

以下是带有泄漏的Logcat

我之前在 onOrientationChange 期间发现了 locationListener 的内存泄漏,

我通过放置解决了它

在 onSaveInstanceState 中。并使用 locationListener 的匿名实现运行初始化函数。

为什么不locationManager.removeUpdates(locationListener)发布对活动的引用?任何建议,将不胜感激!提前致谢!!

编辑 好的,仍然没有解决 MemoryLeak,但我删除了匿名类,而是让 Activity 实现 LocationListener。

我仍然遇到同样的内存泄漏。

0 投票
0 回答
423 浏览

android - WebView Android中leakcanary的奇怪内存泄漏

我使用leakcanary 来检测我的应用程序内存并发现一个包含webview 的Activity 泄漏。当我删除有关 WebView 的代码时,它检测到没有泄漏。但是,在添加 webview 的代码时,leakcanary 显示了一个非常奇怪的消息,例如这个泄漏消息。它显示了由 TextToSpeech 引起的泄漏,但实际上我没有使用这个类。我确定泄漏是由 WebView 引起的,所以我搜索了这个问题,发现它似乎是 Android 中的一个“著名”泄漏。我尝试了很多解决方案,但没有一个可以工作。这是我的 FaceWebViewActivity 中关于 WebView 的代码

我用Java代码初始化了一个WebView,并没有在xml中添加它。在destroy 函数中,我将它从视图层次结构中删除,但leakcanary 仍然显示泄漏消息(我确定我的代码中没有使用TextToSpeech)。有人收到和我一样的泄密信息吗?您能否告诉我有关该消息的一些提示并帮助我摆脱它。

0 投票
1 回答
1911 浏览

android - LeakCanary 未在应用程序中显示泄漏

我在我的应用程序中使用 LeakCanary,并且我已按照指南在应用程序中进行设置。每当应用程序发生泄漏时,LeakCanary 就会在应用程序中显示泄漏通知,而且我能够在手机存储中找到hprof文件,这意味着它可以很好地收集和转储泄漏数据。但问题是,当我在我的设备上打开名为Leaks的 LeakCanary 应用程序以获取有关泄漏发生的确切位置的信息时,它显示一个空白屏幕,没有关于发生泄漏的信息。知道为什么应用程序没有显示任何数据吗?我在运行 Android 6.0.1 的设备上运行我的应用程序。

0 投票
0 回答
117 浏览

android - Android 中用于启动应用程序的内存泄漏(活动作为上下文持续存在)

我的 android 应用程序中存在内存泄漏,这似乎是由 AppCompat 活动存储启动活动的上下文并且从不释放它的方式引起的。

那么我这边有什么可能导致它吗?