naver / naveridlogin-sdk-android

네이버 아이디로 로그인 SDK (안드로이드)
https://developers.naver.com/docs/login/overview/
Apache License 2.0
114 stars 29 forks source link

memory leak issue #61

Closed hanburn closed 1 year ago

hanburn commented 1 year ago

사용 버전 : com.navercorp.nid:oauth:5.2.0 릭체크는 leak canary : 2.8.1 버전으로 사용

[case1] 10-31 11:13:33.132 7740 8439 D LeakCanary: ┬─── 10-31 11:13:33.132 7740 8439 D LeakCanary: │ GC Root: System class 10-31 11:13:33.132 7740 8439 D LeakCanary: │ 10-31 11:13:33.132 7740 8439 D LeakCanary: ├─ android.net.ConnectivityManager class 10-31 11:13:33.132 7740 8439 D LeakCanary: │ Leaking: NO (a class is never leaking) 10-31 11:13:33.132 7740 8439 D LeakCanary: │ ↓ static ConnectivityManager.sInstance 10-31 11:13:33.132 7740 8439 D LeakCanary: │ ~~~~~ 10-31 11:13:33.132 7740 8439 D LeakCanary: ├─ android.net.ConnectivityManager instance 10-31 11:13:33.132 7740 8439 D LeakCanary: │ Leaking: UNKNOWN 10-31 11:13:33.132 7740 8439 D LeakCanary: │ Retaining 114 B in 5 objects 10-31 11:13:33.132 7740 8439 D LeakCanary: │ mContext instance of com.navercorp.nid.oauth.activity.NidOAuthCustomTabActivity with mDestroyed = true 10-31 11:13:33.132 7740 8439 D LeakCanary: │ ↓ ConnectivityManager.mContext 10-31 11:13:33.132 7740 8439 D LeakCanary: │ ~~~~ 10-31 11:13:33.132 7740 8439 D LeakCanary: ╰→ com.navercorp.nid.oauth.activity.NidOAuthCustomTabActivity instance 10-31 11:13:33.132 7740 8439 D LeakCanary: ​ Leaking: YES (ObjectWatcher was watching this because com.navercorp.nid.oauth.activity.NidOAuthCustomTabActivity 10-31 11:13:33.132 7740 8439 D LeakCanary: ​ received Activity#onDestroy() callback and Activity#mDestroyed is true) 10-31 11:13:33.132 7740 8439 D LeakCanary: ​ Retaining 13.0 kB in 298 objects 10-31 11:13:33.132 7740 8439 D LeakCanary: ​ key = 420dea8d-ab16-485f-b0d2-e76a50b54f3b 10-31 11:13:33.132 7740 8439 D LeakCanary: ​ watchDurationMillis = 5729 10-31 11:13:33.132 7740 8439 D LeakCanary: ​ retainedDurationMillis = 714 10-31 11:13:33.132 7740 8439 D LeakCanary: ​ mApplication instance of com.linecorp.b612.android.B612Application 10-31 11:13:33.132 7740 8439 D LeakCanary: ​ mBase instance of androidx.appcompat.view.ContextThemeWrapper

[case2] 10-31 11:13:33.132 7740 8439 D LeakCanary: 6189 bytes retained by leaking objects 10-31 11:13:33.132 7740 8439 D LeakCanary: Signature: b6c624749dfa6c1af2a77dfec7c9a186019e9cf7 10-31 11:13:33.132 7740 8439 D LeakCanary: ┬─── 10-31 11:13:33.132 7740 8439 D LeakCanary: │ GC Root: System class 10-31 11:13:33.132 7740 8439 D LeakCanary: │ 10-31 11:13:33.132 7740 8439 D LeakCanary: ├─ android.app.ActivityThread class 10-31 11:13:33.132 7740 8439 D LeakCanary: │ Leaking: NO (a class is never leaking) 10-31 11:13:33.132 7740 8439 D LeakCanary: │ ↓ static ActivityThread.sCurrentActivityThread 10-31 11:13:33.132 7740 8439 D LeakCanary: │ ~~~~~~ 10-31 11:13:33.132 7740 8439 D LeakCanary: ├─ android.app.ActivityThread instance 10-31 11:13:33.132 7740 8439 D LeakCanary: │ Leaking: UNKNOWN 10-31 11:13:33.132 7740 8439 D LeakCanary: │ Retaining 32.1 kB in 678 objects 10-31 11:13:33.132 7740 8439 D LeakCanary: │ mInitialApplication instance of com.linecorp.b612.android.B612Application 10-31 11:13:33.133 7740 8439 D LeakCanary: │ mSystemContext instance of android.app.ContextImpl 10-31 11:13:33.133 7740 8439 D LeakCanary: │ mSystemUiContext instance of android.app.ContextImpl 10-31 11:13:33.133 7740 8439 D LeakCanary: │ ↓ ActivityThread.mLastResumedActivity 10-31 11:13:33.133 7740 8439 D LeakCanary: │ ~~~~ 10-31 11:13:33.133 7740 8439 D LeakCanary: ├─ android.app.ActivityThread$ActivityClientRecord instance 10-31 11:13:33.133 7740 8439 D LeakCanary: │ Leaking: UNKNOWN 10-31 11:13:33.133 7740 8439 D LeakCanary: │ Retaining 60.3 kB in 1060 objects 10-31 11:13:33.133 7740 8439 D LeakCanary: │ activity instance of com.linecorp.b612.android.sns.NaverLinkActivity with mDestroyed = false 10-31 11:13:33.133 7740 8439 D LeakCanary: │ ↓ ActivityThread$ActivityClientRecord.nextIdle 10-31 11:13:33.133 7740 8439 D LeakCanary: │ ~~~~ 10-31 11:13:33.133 7740 8439 D LeakCanary: ├─ android.app.ActivityThread$ActivityClientRecord instance 10-31 11:13:33.133 7740 8439 D LeakCanary: │ Leaking: UNKNOWN 10-31 11:13:33.133 7740 8439 D LeakCanary: │ Retaining 59.1 kB in 1038 objects 10-31 11:13:33.133 7740 8439 D LeakCanary: │ activity instance of com.navercorp.nid.oauth.NidOAuthBridgeActivity with mDestroyed = true 10-31 11:13:33.133 7740 8439 D LeakCanary: │ ↓ ActivityThread$ActivityClientRecord.activity 10-31 11:13:33.133 7740 8439 D LeakCanary: │ ~~~~ 10-31 11:13:33.133 7740 8439 D LeakCanary: ╰→ com.navercorp.nid.oauth.NidOAuthBridgeActivity instance 10-31 11:13:33.133 7740 8439 D LeakCanary: ​ Leaking: YES (ObjectWatcher was watching this because com.navercorp.nid.oauth.NidOAuthBridgeActivity received 10-31 11:13:33.133 7740 8439 D LeakCanary: ​ Activity#onDestroy() callback and Activity#mDestroyed is true) 10-31 11:13:33.133 7740 8439 D LeakCanary: ​ Retaining 6.2 kB in 208 objects 10-31 11:13:33.133 7740 8439 D LeakCanary: ​ key = 362697ea-e281-42d3-a0ac-f92e14c14c1d 10-31 11:13:33.133 7740 8439 D LeakCanary: ​ watchDurationMillis = 5750 10-31 11:13:33.133 7740 8439 D LeakCanary: ​ retainedDurationMillis = 748 10-31 11:13:33.133 7740 8439 D LeakCanary: ​ mApplication instance of com.linecorp.b612.android.B612Application 10-31 11:13:33.133 7740 8439 D LeakCanary: ​ mBase instance of androidx.appcompat.view.ContextThemeWrapper

DayeonLee-0 commented 1 year ago

안녕하세요.

네아로 SDK 담당자입니다.

해당 이슈는 네아로 SDK v5.4.0에서 해소되었습니다.

개발에 참고 부탁드립니다.

감사합니다.