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)
앱실행 후 네이버 로그인 클릭, 그 후 호출 어플리케이션의 인스턴스가 파괴되면 크래시가 발생합니다.
아래는 샘플앱으로 재현하였지만 실사용중인 프로덕트 앱에서도 현재 발생하고 있습니다.
샘플앱 기동 -> 네이버 로그인 클릭 -> 인앱브라우저 호출(웹뷰) -> 홈버튼으로 onPause
adb shell am kill com.navercorp.nid.oauth.sample
-> onResume -> back press -> crash