场景:
假如你的主项目是:
implementation 'com.android.support:appcompat-v7:28.0.0'
然后你添加了一个依赖,在你的依赖里引用了依赖:
implementation 'com.android.support:appcompat-v7:25.3.1'
预期本来是:你本项目用的是自己的support,依赖用依赖的。当然是不希望你本项目跟着依赖走。但是有时候,就会出现这样的错误。怎么解决?
方法1:
在你引用依赖的时候特意去掉不需要依赖里的support包:如
implementation ('com.github.chrisbanes.photoview:library:1.2.4'){
exclude group:'com.android.support'
}
方法2:
这个方法比较强硬,在项目build.gradle设置。在allprojects标签上加上
// 配置整个项目所依赖的库,保持指定的版本,否则报错.
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '28.0.0'//'27.0.0
}
}
}
}
个人建议使用方法1。方法2虽然方便一句配置搞定所有,但是因为不考虑其他因素可能会引起依赖或module本身报错