You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle依赖冲突咨询:多库依赖不同版本Coil仅下载最新版

解决Gradle依赖冲突(Coil版本冲突)问题

Gradle默认会自动处理依赖冲突,优先采用最新版本,这就是你当前场景下仅下载Coil 2的原因。以下是几种可行的解决办法:

方案1:强制指定统一的Coil版本

如果你的代码能兼容其中一个版本(比如确认library 1可在Coil 2下正常运行,或library 2可降级适配Coil 1),可以在build.gradle或build.gradle.kts中强制指定Coil版本:

Groovy 语法

configurations.all {
    resolutionStrategy.force "io.coil-kt:coil:1.4.0" // 替换为你需要的目标版本号
}

Kotlin DSL 语法

configurations.all {
    resolutionStrategy.force("io.coil-kt:coil:1.4.0")
}

这种方式会让所有依赖统一使用你指定的版本,适合能兼容单一版本的场景。

方案2:排除依赖后手动引入双版本

由于Coil 1.x和2.x的包名不同(1.x用coil,2.x用coil3),理论上可以同时引入两个版本而不产生类冲突。你可以分别排除两个library自带的Coil依赖,再手动引入对应版本:

Groovy 语法

dependencies {
    implementation('com.example:library1:1.0.0') {
        exclude group: 'io.coil-kt', module: 'coil'
    }
    implementation 'io.coil-kt:coil:1.4.0'

    implementation('com.example:library2:1.0.0') {
        exclude group: 'io.coil-kt', module: 'coil'
    }
    implementation 'io.coil-kt:coil:2.4.0'
}

Kotlin DSL 语法

dependencies {
    implementation("com.example:library1:1.0.0") {
        exclude(group = "io.coil-kt", module = "coil")
    }
    implementation("io.coil-kt:coil:1.4.0")

    implementation("com.example:library2:1.0.0") {
        exclude(group = "io.coil-kt", module = "coil")
    }
    implementation("io.coil-kt:coil:2.4.0")
}

方案3:从依赖源解决冲突

如果条件允许,联系library 1的开发者升级适配Coil 2,或让library 2的开发者降级适配Coil 1,从根源上消除版本冲突,这是最稳妥的方案,能避免后续潜在的运行时兼容问题。

注意事项

  • 强制版本或同时引入双版本前,务必完成全面测试,确保两个library在指定版本下能正常运行,避免出现NoClassDefFoundError或其他运行时异常。
  • 可通过执行./gradlew dependencies命令查看依赖树,确认依赖是否被正确排除或替换。

内容的提问来源于stack exchange,提问作者Venkataramanan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:45:33