版本冲突时,可以使用的两种解决方式:
-
方法一:将版本号引用进行统一,这样方便后期进行项目包的维护,然后使用其中一个版本来进行设置。
-
方法二:这种是强制的方式,并不推荐,尽量使用第一种方式。
android中的导入依赖与当前版本不兼容解决方法:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}
使用强制版本
当然,有时候你可能仅仅是需要强制使用某个统一的依赖版本,而不是排除他们,那么此时force就该登场了。指定force = true属性可以冲突时优先使用该版本进行解决。
compile('org.hibernate:hibernate:3.1') {
force = true
}
全局配置强制使用某个版本的依赖来解决依赖冲突中出现的依赖
configurations.all {
resolutionStrategy {
force 'org.hamcrest:hamcrest-core:1.3'
}
}
另外,可以拓展学习一下:
Gradle的最佳实践
androidstudio gradle 解决包冲突的方法
网友评论