naver / naveridlogin-sdk-android

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

kotlin.UninitializedPropertyAccessException: lateinit property context has not been initialized #40

Closed pinkpigsong closed 2 years ago

pinkpigsong commented 2 years ago

앱실행 후 네이버 로그인 클릭, 그 후 호출 어플리케이션의 인스턴스가 파괴되면 크래시가 발생합니다.

아래는 샘플앱으로 재현하였지만 실사용중인 프로덕트 앱에서도 현재 발생하고 있습니다.

샘플앱 기동 -> 네이버 로그인 클릭 -> 인앱브라우저 호출(웹뷰) -> 홈버튼으로 onPause adb shell am kill com.navercorp.nid.oauth.sample -> onResume -> back press -> crash

com.navercorp.nid.oauth.sample E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.navercorp.nid.oauth.sample, PID: 5560
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.navercorp.nid.oauth.sample/com.navercorp.nid.oauth.NidOAuthBridgeActivity}: kotlin.UninitializedPropertyAccessException: lateinit property context has not been initialized
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4035)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.app.ActivityThread.main(ActivityThread.java:8663)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
     Caused by: kotlin.UninitializedPropertyAccessException: lateinit property context has not been initialized
        at com.navercorp.nid.oauth.EncryptedPreferences.init(EncryptedPreferences.kt:33)
        at com.navercorp.nid.oauth.EncryptedPreferences.access$init(EncryptedPreferences.kt:16)
        at com.navercorp.nid.oauth.EncryptedPreferences$encryptedPreferences$2.invoke(EncryptedPreferences.kt:28)
        at com.navercorp.nid.oauth.EncryptedPreferences$encryptedPreferences$2.invoke(EncryptedPreferences.kt:27)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at com.navercorp.nid.oauth.EncryptedPreferences.getEncryptedPreferences(EncryptedPreferences.kt:27)
        at com.navercorp.nid.oauth.EncryptedPreferences.get(EncryptedPreferences.kt:84)
        at com.navercorp.nid.oauth.NidOAuthPreferencesManager.getClientId(NidOAuthPreferencesManager.kt:53)
        at com.navercorp.nid.oauth.NidOAuthBridgeActivity.initData(NidOAuthBridgeActivity.kt:45)
        at com.navercorp.nid.oauth.NidOAuthBridgeActivity.onCreate(NidOAuthBridgeActivity.kt:75)
        at android.app.Activity.performCreate(Activity.java:8290)
        at android.app.Activity.performCreate(Activity.java:8270)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4009)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loopOnce(Looper.java:226) 
        at android.os.Looper.loop(Looper.java:313) 
        at android.app.ActivityThread.main(ActivityThread.java:8663) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) 
DayeonLee-0 commented 2 years ago

안녕하세요. 네아로SDK 담당자입니다.

해당 이슈는 v5.2.0 버전부터 해소되었습니다.

감사합니다.