yandexmobile / yandex-ads-sdk-android

Other
78 stars 22 forks source link

Утечка в com.yandex.mobile.ads.nativeads.a0.c (mobileads:5.7.0) #201

Closed DimaKoz closed 1 year ago

DimaKoz commented 1 year ago
mobileads:5.7.0
mobmetricalib:5.3.0

Вызываются в onDestroy()

var nativeAd: NativeAd? = null
...
nativeAd?.setNativeAdEventListener(null)

и

var loader: NativeAdLoader? = null
...
loader?.setNativeAdLoadListener(null)

Но LeakCanary продолжает находить утечки на реальном устройстве.

┬───
│ GC Root: Thread object
│
├─ android.net.ConnectivityThread instance
│    Leaking: NO (PathClassLoader↓ is not leaking)
│    Thread name: 'ConnectivityThread'
│    ↓ Thread.contextClassLoader
├─ dalvik.system.PathClassLoader instance
│    Leaking: NO (a0↓ is not leaking and A ClassLoader is never leaking)
│    ↓ ClassLoader.runtimeInternalObjects
├─ java.lang.Object[] array
│    Leaking: NO (a0↓ is not leaking)
│    ↓ Object[2913]
├─ com.yandex.mobile.ads.nativeads.a0 class
│    Leaking: NO (a class is never leaking)
│    ↓ static a0.c
│                ~
├─ com.yandex.mobile.ads.nativeads.a0 instance
│    Leaking: UNKNOWN
│    Retaining 298,5 MB in 281980 objects
│    ↓ a0.a
│         ~
├─ java.util.WeakHashMap instance
│    Leaking: UNKNOWN
│    Retaining 298,5 MB in 281979 objects
│    ↓ WeakHashMap.table
│                  ~~~~~
├─ java.util.WeakHashMap$Entry[] array
│    Leaking: UNKNOWN
│    Retaining 298,5 MB in 281975 objects
│    ↓ WeakHashMap$Entry[9]
│                       ~~~
├─ java.util.WeakHashMap$Entry instance
│    Leaking: UNKNOWN
│    Retaining 124,5 kB in 1726 objects
│    ↓ WeakHashMap$Entry.value
│                        ~~~~~
├─ com.yandex.mobile.ads.nativeads.h instance
│    Leaking: UNKNOWN
│    Retaining 124,4 kB in 1725 objects
│    a instance of ru.mypackage.App
│    ↓ l0.f
│         ~
├─ com.yandex.mobile.ads.impl.pk1 instance
│    Leaking: UNKNOWN
│    Retaining 110,1 kB in 1352 objects
│    ↓ pk1.c
│          ~
├─ com.yandex.mobile.ads.impl.f20 instance
│    Leaking: UNKNOWN
│    Retaining 109,8 kB in 1338 objects
│    ↓ f20.c
│          ~
├─ com.yandex.mobile.ads.impl.g20 instance
│    Leaking: UNKNOWN
│    Retaining 109,7 kB in 1334 objects
│    ↓ g20.a
│          ~
├─ com.yandex.mobile.ads.impl.h20 instance
│    Leaking: UNKNOWN
│    Retaining 109,7 kB in 1333 objects
│    ↓ h20.d
│          ~
├─ java.util.WeakHashMap instance
│    Leaking: UNKNOWN
│    Retaining 172 B in 5 objects
│    ↓ WeakHashMap.table
│                  ~~~~~
├─ java.util.WeakHashMap$Entry[] array
│    Leaking: UNKNOWN
│    Retaining 100 B in 2 objects
│    ↓ WeakHashMap$Entry[0]
│                       ~~~
├─ java.util.WeakHashMap$Entry instance
│    Leaking: UNKNOWN
│    Retaining 36 B in 1 objects
│    ↓ WeakHashMap$Entry.value
│                        ~~~~~
├─ com.yandex.mobile.ads.impl.ue instance
│    Leaking: YES (View.mContext references a destroyed activity)
│    Retaining 1,3 kB in 15 objects
│    View not part of a window view hierarchy
│    View.mAttachInfo is null (view detached)
│    View.mWindowAttachCount = 0
│    mContext instance of ru.mypackage.activity.Activity with
│    mDestroyed = true
│    ↓ View.mContext
╰→ ru.mypackage.activity.Activity instance
​     Leaking: YES (ObjectWatcher was watching this because ru.mypackage.
​     activity.Activity received Activity#onDestroy() callback and
​     Activity#mDestroyed is true)
​     Retaining 2,2 MB in 16905 objects
​     key = 9d881907-bcd2-4c5e-95dc-c07b60f9b04d
​     watchDurationMillis = 38468
​     retainedDurationMillis = 33466
​     mApplication instance of ru.mypackage.App
​     mBase instance of androidx.appcompat.view.ContextThemeWrapper

METADATA

Build.VERSION.SDK_INT: 29
Build.MANUFACTURER: samsung
LeakCanary version: 2.10
App process name: ru.my
Class count: 24731
Instance count: 540609
Primitive array count: 219333
Object array count: 82333
Thread count: 312
Heap total bytes: 74855813
Bitmap count: 318
Bitmap total bytes: 386394972
Large bitmap count: 0
Large bitmap total bytes: 0
Count of retained yet cleared: 6 KeyedWeakReference instances
Stats: LruCache[maxSize=3000,hits=179484,misses=500646,hitRate=26%]
RandomAccess[bytes=33386404,reads=500646,travel=523330288096,range=87998908,size
=95977885]
Analysis duration: 38041 ms
mobile-ads-github commented 1 year ago

Добрый день! Разбираемся с данной проблемой.

mobile-ads-github commented 1 year ago

Добрый день. Данная проблема была исправлена в версии рекламного SDK 5.9.0. Обновление версии SDK должно помочь.