【问题标题】:How to resolve gradle dependency conflicts on library root dependency?如何解决库根依赖的gradle依赖冲突?
【发布时间】:2020-06-25 09:32:52
【问题描述】:

在我的项目中,我有两个依赖项,其中 okio 作为传递依赖项冲突。理论上gradle应该选择最高的版本来解决,但是没有用。

我一直在尝试一切,从排除直到从 okio lib 强制版本,但没有任何效果。查看外部库路径,我意识到其中一个依赖项包含 okio 作为依赖项的路径,我相信这就是问题所在。但是我该如何解决呢?

这是一个简单的 gradle 示例,其中包含我的两个依赖项。注释行是我解决问题的失败尝试:

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.3.72'
}

repositories {
    mavenCentral()
}

//configurations.all {
//    resolutionStrategy.force('com.squareup.okio:okio:2.4.3')
//}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"

    // -> dependency one
    implementation "com.squareup.retrofit2:retrofit:2.7.2"
//    implementation ("com.squareup.retrofit2:retrofit:2.7.2"){
//        exclude group: 'com.squareup.okio'
//    }

    // -> dependency two
    implementation "com.eternitywall:java-opentimestamps:1.18"
//    implementation ("com.eternitywall:java-opentimestamps:1.18") {
//        exclude group: 'com.squareup.okio'
//    }

//    implementation "com.squareup.okio:okio:2.4.3"

//    implementation "com.squareup.okio:okio"
//    constraints {
//        implementation("com.squareup.okio:okio:2.4.3") {
//            because 'transitive version conflict'
//        }
//    }
}

要得到错误,只需有一个包含代码的 Main.kt 文件:

import okhttp3.OkHttpClient

fun main(args: Array<String>) {
    OkHttpClient.Builder()
}

而得到的错误是:

Exception in thread "main" java.lang.NoSuchMethodError: 'boolean okio.ByteString.startsWith(okio.ByteString)'
    at okio.Options.of(Options.java:64)
    at okhttp3.internal.Util.<clinit>(Util.java:73)
    at okhttp3.OkHttpClient.<clinit>(OkHttpClient.java:124)
    at okhttp3.OkHttpClient$Builder.<init>(OkHttpClient.java:449)
    at MainKt.main(Main.kt:4)

最后,这是我提到的依赖于包含的 okio 的库根

如果您能帮助我,我将不胜感激。 提前致谢!!

【问题讨论】:

    标签: java kotlin gradle dependencies retrofit


    【解决方案1】:

    好吧,似乎唯一的解决方案是将应用程序分成模块,将每个依赖项放在不同的模块中。尽管我很不情愿,但这是我找到的唯一方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 1970-01-01
      • 2023-01-13
      • 2019-01-01
      • 1970-01-01
      相关资源
      最近更新 更多