问题标签 [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 投票
0 回答
85 浏览

android - 如何将leakCanary的泄漏痕迹上传到HipChat房间

https://gist.github.com/pyricau/06c2c486d24f5f85f7f0#file-squaredebugapplication-java

我正在尝试按照此处的代码将泄漏跟踪上传到 HipChat 房间。我很确定我使用的是有效的身份验证令牌和房间号,但那里没有任何反应。我也注册了服务并用这个特定的服务覆盖了 install() 方法。有没有人成功做到这一点?任何建议都是可观的。

0 投票
1 回答
80 浏览

android - What does the "id" mean in leakcanary

I used LeakCanary to detect memory leak and found this in the log:

But I am not sure what the id=0x12d81740 mean? is it the hash id get by System.identityHashCode(mBitmap)?, I have searched the code, but did not find something relative.

0 投票
2 回答
12884 浏览

android - 卡在“转储内存,应用程序将冻结。Brrr。” 信息

我正在尝试使用 LeakCanary 来检测我的应用程序中的内存泄漏,但它并没有比消息“转储内存,应用程序将冻结。Brrr”更进一步。我已经等了大约 20 分钟左右,但没有任何变化。这些设备上的行为相同:1. Asus fonepad 8(Android 5.0 stock)2. Sony Xperia SP(Android 5.1.1 CM 12.1 custom)3. HTC Desire C(Android 4.4 CM 11 custom)

我按照指示做了一切:

0 投票
0 回答
271 浏览

android - LeakCanary 报告的 AttachInfo.mRootCallbacks 的内存泄漏

我正在使用LeakCanary库来解决我的活动的内存泄漏问题。修复了几个问题后,我得到了这个 logcat 输出:

  • com.MyPackage.activities.MyActivity 已泄露:
  • GC ROOT com.MyPackage.MyView.mAttachInfo
  • 引用 android.view.View$AttachInfo.mRootCallbacks
  • 引用 android.view.ViewRootImpl.mContext
  • 泄漏 com.MyPackage.activities.MyActivity 实例
  1. 我不知道这个参考是什么意思。该视图保留对阻止它被 GCed 的活动的引用?我应该何时以及如何处理它?
  2. 我使用了Eclipse 内存分析工具,发现实际上没有我的活动实例。那有意义吗?

也将此作为金丝雀的问题打开。


编辑1:相关实施:

视图:是处理 gl 渲染的外部 jar 的一部分。有对片段的引用。

我所知道的是,当我离开活动时:

  1. 该活动被销毁,并且不再有该活动的实例。
  2. 片段被销毁。
  3. 视图是分离的。

那么为什么金丝雀图书馆会声称 - 有一个泄露的参考资料?

视图应该何时以及如何失去对其上下文的引用?

0 投票
1 回答
1712 浏览

java - 为什么这个 Observable.timer() 会导致内存泄漏?

LeakCanaryArticleActivity通过RxComputationThreadPool-1. _ 因此,我将我的ArticleContainerFragment.startTimer()方法确定为导致它的方法。删除我的Observable.timer()调用创建后,不再报告内存泄漏。我仍然需要使用这个计时器,所以你能帮我确定为什么会发生泄漏吗?我在所有我认为正确的地方取消订阅 - 所以我不确定为什么我什至首先会泄露。

这是泄漏的 LeakCanary 日志。

0 投票
1 回答
4820 浏览

android - 阅读 LeakCanary 日志

我已经安装了 LeakCanary 来查看我的应用程序是否存在内存泄漏。

看起来是这样,但是我看不懂日志,任何人都可以告诉我怎么做,或者给我找不到的好教程???

github的文档中,它说:

一旦你有了泄漏跟踪,找出路径中的哪个引用不应该存在。然后找出为什么该引用仍然存在。

但我不知道该怎么做。

发送!

这是我的日志。

0 投票
2 回答
3758 浏览

android - android studio - 如何制作两个自定义应用程序类

我想为我的 android 项目设计两个自定义应用程序。自定义应用程序是扩展应用程序的应用程序。我希望我的发布版本有一个自定义应用程序,而调试版本有另一个。LeakCanary 站点在标记为“自定义和使用无操作依赖项”的部分中讨论了一点。

我似乎无法弄清楚如何在 androidManifest 中声明另一个应用程序。现在我将它设置为使用这样的单个自定义应用程序:

我如何使上述代码仅用于调试?

并且 androidManifest 覆盖看起来像这样:

我将如何发布另一个 MySecondCustomApplication ?

更新:关于在 gradle 中查看 bulidTypes 的建议,想象我为我的调试应用程序覆盖做了以下结构:

因此,如果我正确理解 buildTypes,那么如果我只有一个用于发布和调试的主文件夹(它是默认/回退),但是如果我指定一个调试文件夹,那么如果我运行任何调试风格,我可能会有 mockDebug、qaDebug等然后它会首先在调试文件夹中查找文件,然后如果找不到则转到主目录,对吗?

另外,那么我将如何在我的清单中声明要使用哪一个?gradle 文件会是什么样子?

0 投票
3 回答
2442 浏览

android - MapView v2 保持上下文

从最新的谷歌地图 API 中使用 MapView 时,我遇到了内存泄漏,因为 MapView 正在保留我的活动。

我使用了 Leak Canary 并有这个痕迹


D/LeakCanary﹕* GC ROOT com.google.android.gms.location.internal.ta

D/LeakCanary﹕ * 参考 com.google.android.gms.location.internal.sa

D/LeakCanary﹕ * 参考 com.google.maps.api.android.lib6.dvc

D/LeakCanary﹕ * 参考 com.google.maps.api.android.lib6.d.aj.b

D/LeakCanary﹕ * 参考 com.google.maps.api.android.lib6.gmm6.cpa

D/LeakCanary: * 参考 com.google.maps.api.android.lib6.gmm6.cymParent

D/LeakCanary: * 引用 android.widget.FrameLayout.mParent

D/LeakCanary: * 参考 com.google.android.gms.maps.MapView.mContext

D/LeakCanary﹕*泄漏 com.myapp.activities.main.AttractionDetailActivity 实例


有没有人见过这个?

0 投票
2 回答
1075 浏览

memory-leaks - RxJava Observable Zip 导致内存泄漏

我正在使用 RxJava 的 Observable.zip 方法将两个 API 调用组合成一个结果。出于某种原因,尽管我取消了订阅,但我还是遇到了内存泄漏。我不确定这是否是我的错误,或者我是否需要创建 Observable。

这是来自 Leak Canary 的踪迹。

泄漏痕迹

任何帮助,将不胜感激。

0 投票
1 回答
136 浏览

android - 将泄漏跟踪发送到服务器

我现在正在使用leakcanery 一段时间,它工作正常!问题是在广泛的设备上测试了我的一个应用程序之后,出现了一些我以前从未见过的泄漏,所以我决定在生产版本中也启用泄漏或跟踪到我的服务器的泄漏。3个问题

1 - 性能会受到影响吗?!有时泄漏会导致调试模式出现一些滞后,所以如果我在生产版本中启用。是否会发生相同的滞后?

2 - 我阅读了有关如何将堆文件发送到服务器的文档,但是有什么方法可以代替发送跟踪,就像一次泄漏通常显示的那样。当我得到它时,我真的不想分析堆文件。那么我怎样才能在发送它之前解析这个文件以使其有意义呢?

3-我可能是最愚蠢的问题,但我应该怎么做才能在生产版本中启用泄漏?是默认启用还是我应该如何配置它?