Programing/Flutter

[Flutter] kotlin 버전 충돌 에러 해결 (Exception: Gradle task assembleDebug failed with exit code 1, Duplicate class kotlin.collections.jdk8)

뇌님 2023. 11. 4. 19:52
반응형

 

잘 돌아가던 flutter 앱에 기능을 추가하려고 패키지를 새로 설치했더니 아래와 같은 에러가 발생했습니다.

Launching lib\main.dart on sdk gphone64 x86 64 in debug mode...
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk8-1.7.10 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk7-1.7.10 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10)
     
     ... (생략)
     
     
     * Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 8s
Exception: Gradle task assembleDebug failed with exit code 1

Exited (1).

 

 

사전안내

Exception: Gradle task assembleDebug failed with exit code 1 

이 에러가 발생할 수 있는 원인은 정말 다양합니다.

 

  • 의존성 충돌: 프로젝트의 pubspec.yaml 파일에 명시된 의존성들 간에 충돌이 발생할 수 있습니다.
  • 플러그인 호환성 문제: 사용 중인 플러그인이 현재의 Flutter SDK 버전이나 다른 플러그인과 호환되지 않을 수 있습니다.
  • Gradle 설정 오류: build.gradle 파일에 잘못된 설정이 있거나, Gradle 버전이 프로젝트와 호환되지 않을 수 있습니다.
  • AndroidX 호환성 문제: 프로젝트가 AndroidX를 올바르게 지원하지 않을 경우 문제가 발생할 수 있습니다.
  • SDK 버전 문제: compileSdkVersion, minSdkVersion, targetSdkVersion 등이 올바르게 설정되지 않았거나, 설치된 Android SDK와 일치하지 않을 수 있습니다.
  • 자바 버전 문제: 사용 중인 Java 버전이 Flutter 또는 Gradle과 호환되지 않을 수 있습니다.
  • 기타 등등...

따라서 * what went wrong 부분을 확인하고 그 원인에 맞게 해결방법을 달리 해야합니다.

 

이 글에서는 제가 만난 에러만을 해결합니다.

 

 

에러원인

제 경우엔 아래와 같이 kotlin버전이 서로 충돌이 일어나는 경우입니다. (1.8.10 vs 1.7.10)

> Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and jetified-kotlin-stdlib-jdk8-1.7.10 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10)

 

새로 설치한 패키지(android_alarm_manager_plus)가 1.8.10을 사용하나 봅니다.

기본으로 설정되어있는 버전(1.7.10)을 1.8.10으로 변경시켜주면 됩니다.

 

 

에러해결

android/build.gradle 파일에서 ext.kotlin_version을 올바른 버전으로 변경한 뒤 저장합니다.

1.7.10 -> 1.8.10

 

빌드가 잘 되었습니다.

 

 


 

반응형