如何使用kotlinx-datetime创建Kotlin项目并在不同的JVM之间共享

csbfibhn  于 12个月前  发布在  Kotlin
关注(0)|答案(1)|浏览(182)

我正在处理一个项目,我想使用kotlinx-datetime库(特别是org.jetbrains.kotlinx:kotlinx-datetime:0.4.1)。然而,当我试图将这个项目与另一个使用不同JVM的项目共享时,我面临着一个挑战。这两个项目都需要包含相同版本的kotlinx-datetime,但它们有不同的JVM需求。
我在尝试共享我的项目时遇到以下错误:

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:
      - C:\...\kotlinx-datetime-jvm\0.4.1\...\kotlinx-datetime-jvm-0.4.1.jar
      - C:\...\org.jetbrains.kotlinx\atomicfu-jvm\0.22.0\...\atomicfu-jvm-0.22.0.jar

字符串
以下是我尝试过的和我所期待的:
我尝试将api("org.jetbrains.kotlinx:kotlinx-datetime:0.4.1")添加到我的子项目中并在那里定义它。然后,我在我的Android项目中使用implementation("...:api_client:1.1-SNAPSHOT")实现了这一点。
现在,我有两个主要问题:
1.如何创建一个使用implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.1")的Kotlin项目并正确设置它?
1.那么我如何将这个项目与另一个同样使用implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.1")但运行在不同JVM上的项目共享呢?处理这种情况的最佳实践是什么?
我很感激任何关于如何构建我的项目和依赖项以实现这一目标的指导或提示,特别是考虑到我遇到的错误消息。谢谢!

ohtdti5x

ohtdti5x1#

由于此错误只是关于Meta信息,您可以只排除相关文件:

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

字符串
但是,在这种情况下,只需将kotlinx-datetime升级到0.5.0。通常,Meta数据冲突会发生,因为这些部分首先不应该是工件的一部分。一旦其中一个库被修复,升级就会有所帮助。

相关问题