LeakActivity утечка показывая на утечки канарейка - PullRequest
1 голос
/ 26 октября 2019

Это действие не является частью моего приложения, и оно отображается в приложении Leak Canary.

это даже не похоже на то, что я запускаю, и если я вообще открыл приложение.

Я получил это сообщение всего 6 раз за последние 12 часов

Можеткто-нибудь поможет понять это?

LibraryLeak(className=leakcanary.internal.activity.LeakActivity, leakTrace=
┬
├─ android.view.ViewGroup$ViewLocationHolder
│    Leaking: NO (a class is never leaking)
│    GC Root: System class
│    ↓ static ViewGroup$ViewLocationHolder.sPool
│                                          ~~~~~
├─ android.util.Pools$SynchronizedPool
│    Leaking: UNKNOWN
│    ↓ Pools$SynchronizedPool.mPool
│                             ~~~~~
├─ java.lang.Object[]
│    Leaking: UNKNOWN
│    ↓ array Object[].[0]
│                     ~~~
├─ android.view.ViewGroup$ViewLocationHolder
│    Leaking: UNKNOWN
│    ↓ ViewGroup$ViewLocationHolder.mRoot
│                                   ~~~~~
├─ android.widget.ListView
│    Leaking: YES (View.mContext references a destroyed activity)
│    mContext instance of leakcanary.internal.activity.LeakActivity with mDestroyed = true
│    View#mParent is set
│    View#mAttachInfo is null (view detached)
│    View.mWindowAttachCount = 1
│    ↓ ListView.mContext
╰→ leakcanary.internal.activity.LeakActivity
​     Leaking: YES (ListView↑ is leaking and Activity#mDestroyed is true and ObjectWatcher was watching this)
​     key = 53dca871-cc9b-4735-a0fd-98d21465fce0
​     watchDurationMillis = 14202
​     retainedDurationMillis = 9201
, retainedHeapByteSize=132349, 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)```

1 Ответ

2 голосов
/ 27 октября 2019

Это известная утечка в платформе Android (ViewGroup.ViewLocationHolder): https://github.com/square/leakcanary/issues/1081

LeakCanary фактически идентифицирует его как таковой, именно поэтому он сообщается как «LibraryLeak». Посмотрите эту ветку, чтобы узнать, как это исправить (это сложно, потому что это ошибка в платформе Android).

...