naver / naveridlogin-sdk-android

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

[Bug Report] #91

Closed wyatt-flo closed 1 year ago

wyatt-flo commented 1 year ago

사용중인 네아로 SDK 버전

v5.5.0

Android 버전

Android 11

재현되는 기기 모델명

Pixel 5 등

저희 서비스앱의 사용자가 네이버로그인 시도 시 반복적으로 crash가 발생한다고 하여 수집된 로그를 기반으로 리포트합니다. https://github.com/naver/naveridlogin-sdk-android/issues/79 와 유사한데 (재현경로는 다른 것 같습니다만) v5.5.0에서 여전히 발생하고 있습니다.

Stack trace

Caused by kotlin.UninitializedPropertyAccessException: lateinit property applicationContext has not been initialized
       at com.navercorp.nid.NaverIdLoginSDK.getApplicationContext(NaverIdLoginSDK.kt:52)
       at com.navercorp.nid.preference.EncryptedPreferences.getCtx(EncryptedPreferences.kt:21)
       at com.navercorp.nid.preference.EncryptedPreferences.init(EncryptedPreferences.kt:43)
       at com.navercorp.nid.preference.EncryptedPreferences.access$init(EncryptedPreferences.kt:18)
       at com.navercorp.nid.preference.EncryptedPreferences$encryptedPreferences$2.invoke(EncryptedPreferences.kt:31)
       at com.navercorp.nid.preference.EncryptedPreferences$encryptedPreferences$2.invoke(EncryptedPreferences.kt:30)
       at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
       at com.navercorp.nid.preference.EncryptedPreferences.<clinit>(EncryptedPreferences.kt:30)
       at com.navercorp.nid.preference.EncryptedPreferences.getEncryptedPreferences(EncryptedPreferences.kt:30)
       at com.navercorp.nid.preference.EncryptedPreferences.get$default(EncryptedPreferences.kt:107)
       at com.navercorp.nid.preference.EncryptedPreferences.get(EncryptedPreferences.kt:107)
       at com.navercorp.nid.oauth.NidOAuthPreferencesManager.getClientId(NidOAuthPreferencesManager.kt:54)
       at com.navercorp.nid.oauth.NidOAuthQuery$Builder.<init>(NidOAuthQuery.kt:34)
       at com.navercorp.nid.oauth.activity.NidOAuthCustomTabActivity.openCustomTab(NidOAuthCustomTabActivity.kt:80)
       at com.navercorp.nid.oauth.activity.NidOAuthCustomTabActivity.onResume(NidOAuthCustomTabActivity.kt:45)
       at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1456)
       at android.app.Activity.performResume(Activity.java:8129)
       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4428)
       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4470)
       at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
       at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:223)
       at android.app.ActivityThread.main(ActivityThread.java:7664)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
DayeonLee-0 commented 1 year ago

@wyatt-flo 님 안녕하세요.

Android 네아로 SDK 담당자입니다.

이슈 확인을 위해 재현 시나리오도 함께 작성 부탁드립니다.

감사합니다.

wyatt-flo commented 1 year ago

@DayeonLee-0 사용자에게 전달받은 재현경로에서는 특이사항을 찾지 못하였습니다. 다만 한번 재현되기 시작하면 서비스앱을 재시작하여도 반복적으로 재현된다고 하였고, 실제로 위에 남긴 Exception 로그가 동일하게 반복적으로 3회 반복되는 것을 확인하였습니다.

SongGyul commented 1 year ago

저희도 v5.5.0사용중인데, crash 로그가 나오네요. 증상 재현은 안 되는데 로그상 기기는 Nexus 5X입니다. @DayeonLee-0

Caused by kotlin.UninitializedPropertyAccessException: lateinit property applicationContext has not been initialized
       at com.navercorp.nid.NaverIdLoginSDK.getApplicationContext(NaverIdLoginSDK.kt:52)
       at com.navercorp.nid.preference.EncryptedPreferences.getCtx(EncryptedPreferences.kt:21)
       at com.navercorp.nid.preference.EncryptedPreferences.init(EncryptedPreferences.kt:43)
       at com.navercorp.nid.preference.EncryptedPreferences.access$init(EncryptedPreferences.kt:18)
       at com.navercorp.nid.preference.EncryptedPreferences$encryptedPreferences$2.invoke(EncryptedPreferences.kt:31)
       at com.navercorp.nid.preference.EncryptedPreferences$encryptedPreferences$2.invoke(EncryptedPreferences.kt:30)
       at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
       at com.navercorp.nid.preference.EncryptedPreferences.<clinit>(EncryptedPreferences.kt:30)
       at com.navercorp.nid.preference.EncryptedPreferences.getEncryptedPreferences(EncryptedPreferences.kt:30)
       at com.navercorp.nid.preference.EncryptedPreferences.get$default(EncryptedPreferences.kt:107)
       at com.navercorp.nid.preference.EncryptedPreferences.get(EncryptedPreferences.kt:107)
       at com.navercorp.nid.oauth.NidOAuthPreferencesManager.getClientId(NidOAuthPreferencesManager.kt:54)
       at com.navercorp.nid.oauth.NidOAuthQuery$Builder.<init>(NidOAuthQuery.kt:34)
       at com.navercorp.nid.oauth.activity.NidOAuthCustomTabActivity.openCustomTab(NidOAuthCustomTabActivity.kt:80)
       at com.navercorp.nid.oauth.activity.NidOAuthCustomTabActivity.onResume(NidOAuthCustomTabActivity.kt:45)
       at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258)
       at android.app.Activity.performResume(Activity.java:6327)
       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3096)
       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3138)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481)
       at android.app.ActivityThread.-wrap11(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5421)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
DayeonLee-0 commented 1 year ago

안녕하세요.

네아로 SDK 담당자입니다.

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

추가적으로 네아로 SDK에서 사용되는 Application Context가 유실되는 경우를 위해 NaverIdLoginSDK.init(context) 메서드가 추가되었습니다.

샘플앱 코드를 참고 부탁드립니다.

감사합니다.