[Kotlin Multiplatform] ktor(or kotlinx-datetime) 사용 시 발생하는 에러

이현우·2023년 10월 18일
2
post-thumbnail

Issue

만약 당신이 다음과 같은 개발환경을 세팅하고 있다면 발생할 수 있는 에러이다.

Kotlin: 1.9.10
Kotlin Multiplatform
ktor: 2.3.5 이상
kotlinx-datetime: 0.4.1

Execution failed for task ':app:mergeDebugJavaResource'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction
   > 2 files found with path 'META-INF/versions/9/previous-compilation-data.bin' from inputs:
      - /Users/UserName/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-datetime-jvm/0.4.1/684eec210b21e2da7382a4aa85e56fb7b71f39b3/kotlinx-datetime-jvm-0.4.1.jar
      - /Users/UserName/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/atomicfu-jvm/0.22.0/c6a128a44ba52a18265e5ec816130cd341d80792/atomicfu-jvm-0.22.0.jar
     Adding a packagingOptions block may help, please refer to
     https://developer.android.com/reference/tools/gradle-api/8.1/com/android/build/api/dsl/ResourcesPackagingOptions
     for more information

Solution

androidApp 패키지 내의 build.gradle.ktsandroid 블록에 다음과 같은 packaging exclude를 선언하면 된다.

    packaging {
        resources.excludes.apply {
            resources.excludes.add("META-INF/versions/**")
        }
    }

Reference

KTOR-6362 Android: a failure while executing MergeJavaResWorkAction with Ktor 2.3.5

profile
이현우의 개발 브이로그

3개의 댓글

comment-user-thumbnail
2023년 10월 23일

좋은 글 감사합니다!

질문이 있는데 혹시 velog url에 글의 제목이 포함되지 않게 수정하여서 짧고 간단한 형태로 바꾸신 것 같은데 어떻게 하신 것인지 알 수 있을까요? 보통 제목에 한글이 들어가면 'https://velog.io/@mraz3068/Compose-Paging3-LoadStateFooter-%EA%B5%AC%ED%98%84-%EB%B0%A9%EB%B2%95' 이런식으로 인코딩 되어서 너무 길어지는 단점이 있어서 그 방법이 궁금합니다!

1개의 답글