在泄密金丝雀中,有时我会被报告为“图书馆泄漏”
HEAP ANALYSIS RESULT
====================================
0 APPLICATION LEAKS
References underlined with "~~~" are likely causes.
Learn more at https://squ.re/leaks.
====================================
1 LIBRARY LEAKS
Library Leaks are leaks coming from the Android Framework or Google libraries.
Leak pattern: instance field android.view.ViewGroup$ViewLocationHolder#mRoot
Description: In Android P, ViewLocationHolder has an mRoot field that is not cleared in its clear() method. Introduced in https://github.com/aosp-mirror/platform_frameworks_base/commit/86b326012813f09d8f1de7d6d26c986a909d Bug report: https://issuetracker.google.com/issues/112792715
66264 bytes retained by leaking objects
Signature: 64becd25d6156daa91df6572a75b6a28ddb1
┬───
│ GC Root: System class在泄密金丝雀网站上写着:
LibraryLeak 数据类LibraryLeak :泄漏 HeapAnalyzer发现的泄漏,其中泄漏对象的唯一路径需要通过模式匹配的引用,就像LibraryLeakReferenceMatcher实例提供的那样。这是已知的库代码泄漏,超出了您的控制范围。
真的超出我的控制范围了?
可能是我做了什么导致的吗?
我能做些什么来阻止它吗?
漏糖有时会放置一个链接来报告这个内存泄漏,但我没有看到任何反应,这是android通常在做的事情吗?如果是的话,这些问题通常是如何解决的,如何跟踪?
如果真的没有办法解决或阻止它,我是否可以要求泄密金丝雀忽略库泄漏?
发布于 2020-03-12 23:49:08
这是一个很好的问题,事实上这应该被更好地记录下来,所以我创建了一个问题来跟踪这个问题:https://github.com/square/leakcanary/issues/1773
真的超出我的控制范围了?
是也不是。通常情况下,这意味着泄漏不是由代码中的错误或错误使用API引起的,而是由Android或Android中的bug引起的。尽管如此,它并不总是在您的控制之外,有一些技巧/黑客可以解决泄漏。
可能是我做了什么导致的吗?
安卓P中的ViewLocationHolder是一个不幸的错误。当你使用视图时。所以你没做什么特别的事。
我能做些什么来阻止它吗?
潜在的,但还没有人想出一个明确的黑客来解决这个问题。
漏糖有时会放置一个链接来报告这个内存泄漏,但我没有看到任何反应,这是android通常在做的事情吗?如果是的话,这些问题通常是如何解决的,如何跟踪?
不知道你在这里是什么意思。如果您的意思是指向bug报告(https://issuetracker.google.com/issues/112792715)的链接停止工作,是的,这是因为谷歌决定阻止访问。
如果真的没有办法解决或阻止它,我是否可以要求泄密金丝雀忽略库泄漏?
在转储堆和进行分析之前,LeakCanary无法知道泄漏是否是库泄漏。重要的是通知开发人员已经完成了分析(即使它只发现了库泄漏而没有应用程序泄漏),因为否则他们会想知道分析发生了什么。
https://stackoverflow.com/questions/60491449
复制相似问题