PeterPlanet
PeterPlanet
PeterPlanet
전체 방문자
오늘
어제
  • 분류 전체보기 (30)
    • 블록체인 (0)
    • Flutter programming (6)
    • Side Project (1)
      • 베스트셀러 (1)
    • Kotlin programming (16)
      • 코틀린(kotlin) (12)
      • Compose (4)
    • 아이폰(xcode) (6)
    • 구글 관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • compose
  • Kotlin
  • 코틀린
  • obj-c
  • flutter confirm
  • Ripple
  • webview alert
  • update target sdk
  • 네아로
  • webview confirm
  • Flutter
  • 안드로이드
  • Objective-C
  • 컨테이너에 리플효과
  • system confirm
  • Update Android Target SDK 32 Version
  • 앱개발
  • Android
  • flutter alert
  • target sdk update

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
PeterPlanet

PeterPlanet

Kotlin programming/코틀린(kotlin)

[Kotlin][Naver login 구현] 앱이 설치돼있지 않을 때 로그인 시도 시 발생하는 에러

2022. 1. 28. 11:11
반응형

네이버 로그인 기능 구현 중 디바이스에 앱이 설치돼 있지 않을 때 앱이 종료 되는 현상이 발생 하였다.

오류 메세지는 아래 첨부 했고 원인을 찾아 보니 네이버 로그인 라이브러리에서 사용하는 브라우저 라이브러리의 임포트가 필요 했다.

 

오류 메세지 -

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/browser/customtabs/CustomTabsIntent$Builder;

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/browser/customtabs/CustomTabsIntent$Builder;
        at com.nhn.android.naverlogin.util.CustomTabsManager.launchUrl(CustomTabsManager.java:118)
        at com.nhn.android.naverlogin.ui.OAuthCustomTabActivity.openCustomTab(OAuthCustomTabActivity.java:91)
        at com.nhn.android.naverlogin.ui.OAuthCustomTabActivity.initIntentData(OAuthCustomTabActivity.java:83)
        at com.nhn.android.naverlogin.ui.OAuthCustomTabActivity.onResume(OAuthCustomTabActivity.java:134)
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1446)
        at android.app.Activity.performResume(Activity.java:7939)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4195)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4237)
        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:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.browser.customtabs.CustomTabsIntent$Builder" on path: DexPathList[[zip file "/data/app/com.smc.mobile.pguidea-JaphiTxWqYBAu4miyvDNhA==/base.apk"],nativeLibraryDirectories=[/data/app/com.smc.mobile.pguidea-JaphiTxWqYBAu4miyvDNhA==/lib/x86, /data/app/com.smc.mobile.pguidea-JaphiTxWqYBAu4miyvDNhA==/base.apk!/lib/x86, /system/lib, /system/product/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.nhn.android.naverlogin.util.CustomTabsManager.launchUrl(CustomTabsManager.java:118) 
        at com.nhn.android.naverlogin.ui.OAuthCustomTabActivity.openCustomTab(OAuthCustomTabActivity.java:91) 
        at com.nhn.android.naverlogin.ui.OAuthCustomTabActivity.initIntentData(OAuthCustomTabActivity.java:83) 
        at com.nhn.android.naverlogin.ui.OAuthCustomTabActivity.onResume(OAuthCustomTabActivity.java:134) 
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1446) 
        at android.app.Activity.performResume(Activity.java:7939) 
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4195) 
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4237) 
        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:2016) 
        at android.os.Handler.dispatchMessage(Handler.java:107) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7356) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

결론 - build.gradle에 browser 라이브러리를 implementation 해주면 된다.

implementation "androidx.browser:browser:1.0.0"

// 최신버전 2022.01.28 기준
// implementation "androidx.browser:browser:1.4.0"
// 현재 1.4.0 이 최신 버전인데 minsdk 버전을 31로 올려야 한다.

 

저작자표시 (새창열림)

'Kotlin programming > 코틀린(kotlin)' 카테고리의 다른 글

[Android studio] 에뮬레이터 tool window에서 실행 하기  (0) 2022.02.18
[Kotlin] txt 파일 생성하고 데이터 내보내기(export txt file)  (0) 2022.02.15
[Kotlin] 키보드 내리기 Hide keyboard  (0) 2022.01.27
[Kotlin] JCenter 서비스 업데이트로 인한 mavenCentral 전환 이슈(Migration Jcenter to mavenCentral)  (0) 2022.01.18
[Kotlin] ONE UI 4.0 업데이트 하고 나서 앱이 사라 졌다! ㅠㅠ  (0) 2022.01.04
    'Kotlin programming/코틀린(kotlin)' 카테고리의 다른 글
    • [Android studio] 에뮬레이터 tool window에서 실행 하기
    • [Kotlin] txt 파일 생성하고 데이터 내보내기(export txt file)
    • [Kotlin] 키보드 내리기 Hide keyboard
    • [Kotlin] JCenter 서비스 업데이트로 인한 mavenCentral 전환 이슈(Migration Jcenter to mavenCentral)
    PeterPlanet
    PeterPlanet
    기록하기

    티스토리툴바