Android

java.lang.ClassNotFoundException: Didn't find class "java.time.Duration" on path: DexPathList 해결법

검정비니 2022. 9. 20. 14:26
728x90
반응형

Java version: Java8

 

안드로이드 앱을 개발하면서 dnsjava나 GoogleCredentials 등을 사용하다 보면 아래와 같은 에러를 만날 수 있다.

java.lang.ClassNotFoundException: Didn't find class "java.time.Duration" on path: DexPathList

해당 에러의 주요 원인은 앱이 실행되는 환경에 있는 JVM 환경에 java.time이 없기 때문에 발생하는 문제이다.

Stackoverflow에 따르면 java.time 관련 기능이 Android API 26에 추가가 되었기 때문에 이보다 아래 버전의 API 환경에서는 위와 같은 에러가 발생한다고 한다.

https://stackoverflow.com/questions/62847754/android-dnsjava-noclassdeffounderror-failed-resolution-of-ljava-time-duration

 

간단한 해결법으로는 build.gradle에 다음과 같이 desugaring 관련 내용을 추가하면 된다고 한다.

android {
	...
    
    compileOptions {
        coreLibraryDesugaringEnabled true
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}


dependencies {
    implementation 'android.arch.lifecycle:common-java8:1.1.1'
    coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:2.0.0"
    
    ...
}

 

참고:

https://issuetracker.google.com/issues/173208350

반응형

'Android' 카테고리의 다른 글

adb를 통해 앱 로그 얻기  (2) 2023.12.30
ADB 커멘드 정리  (0) 2022.09.15
ADB로 apk 설치하기  (0) 2022.09.15
android.os.NetworkOnMainThreadException 해결 방법  (2) 2020.07.11
WebView net::ERR_CLEARTEXT_NOT_PERMITTED  (0) 2020.06.26