java - 重复类 Koin org.koin 和 io.insert-koin

标签 java android kotlin gradle koin

我正在使用两个库,它们具有两个不同版本的 Koin 的依赖项。
其中一个图书馆有 org.koin:koin-android:2.0.1 另一个有 io.insert-koin:koin-core-jvm:3.0.1 依赖关系。

在编译时,我得到了大量 重复类(class) 错误如下,

Duplicate class org.koin.android.BuildConfig found in modules jetified-koin-android-2.0.1-runtime (org.koin:koin-android:2.0.1) and jetified-koin-android-3.0.1-runtime (io.insert-koin:koin-android:3.0.1)
Duplicate class org.koin.android.ext.koin.KoinExtKt$androidContext$1 found in modules jetified-koin-android-2.0.1-runtime (org.koin:koin-android:2.0.1) and jetified-koin-android-3.0.1-runtime (io.insert-koin:koin-android:3.0.1)
Duplicate class org.koin.core.scope.Scope$injectOrNull$1 found in modules jetified-koin-core-2.0.1 (org.koin:koin-core:2.0.1) and jetified-koin-core-jvm-3.0.1 (io.insert-koin:koin-core-jvm:3.0.1)
Duplicate class org.koin.java.KoinJavaComponent$inject$1 found in modules jetified-koin-core-jvm-3.0.1 (io.insert-koin:koin-core-jvm:3.0.1) and jetified-koin-java-2.0.1 (org.koin:koin-java:2.0.1)
...
当我尝试如下排除其中之一时,
configurations {
    all { 
        exclude group: "io.insert-koin", module: "koin-android"
        exclude group: "io.insert-koin", module: "koin-core-jvm"
    }
}
我在相关的运行时得到了 NoClassDefFoundError 。
当排除 org.koin:koin-android:2.0.1
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.koin.core.KoinComponent" on path: DexPathList[[zip file "/data/app/...
当排除 io.insert-koin:koin-core-jvm:3.0.1
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.koin.core.component.KoinComponent" on path: DexPathList[[zip file "/data/app/...
我怎样才能使用这两个库?

最佳答案

Koin 3.x.x 没有向后兼容性。如果使用 Koin 2.x.x 版本的 sdk 没有更新,也许您最好为使用 Koin 2.x.x 的对面库找到旧版本。但请注意 Koin 版本 2.2.3 也有不同的路径(由于 jcenter 限制)

关于java - 重复类 Koin org.koin 和 io.insert-koin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68105926/

相关文章:

android - Kotlin 。未经检查将 : Any? 转换为 HashMap<String?, String?>?

java - 部署规则集是否允许 JNLP 在不签名 jar 的情况下运行?

java - Android, JSON数组转化为ArrayList<String>

android - 使用 MotionEvent.ACTION_MOVE 制作像主屏幕一样的 ViewFlipper

kotlin - 为什么要为ApplicationContext对象添加注释@ApplicationContext?

java - 如何禁用条码蓝牙阅读器向 EditText 输入文本?

java - 坚持使用 lambda 表达式和 Map

java - 用于本地化的 map 表示

java - 如何注释 stub 中的隐式参数

android - 网上取图出现 "Bitmap is not valid"错误如何解决