时间:2021-05-19
问题
在Android开发中,相信遇到关于版本依赖的问题的同学有不少。虽然Android Studio一般都会自动帮我们去重,但是有时候去重失败了还是需要手动处理。在这里总结下自己长期遇到的各类问题的解决方式。
为了方便看效果,我们改下gradle解决策略为有版本冲突时自动失败,如下:
configurations.all { resolutionStrategy { failOnVersionConflict() }}当我们同时依赖不同版本rxjava时编译会报错如下:
解决方案
1.统一版本管理
当一个project下有多个module或library时很适合使用统一版本管理方式
创建config.gradle
在project目录下创建config.gradle文件,将需要统一管理的加在里面,如下:
在project下的build.gradle开头加入
module或library下引用版本
2.去除冲突依赖
当我们使用网上的一些开源库,并且自己项目里面也用到了不同的版本库时,我们可以在依赖的开源库中用exclude去除重复。
假如我们依赖的库是com.carlos.test:Test:1.0.0,里面用到了rxjava和我们module用到了不同版本,那么我们可以这样做:
implementation ('com.carlos.test:Test:1.0.0') { exclude group: "io.reactivex.rxjava2",module: "rxjava" // exclude group: "io.reactivex.rxjava2:rxjava:2.1.11" } implementation 'io.reactivex.rxjava2:rxjava:2.1.13'group为库的groupId,module为artifactId。我们也可以直接用注释中的方法指定具体的版本。
3.强制使用某版本依赖
我们也可以直接在策略里面强制使用某版本依赖
configurations.all { resolutionStrategy { force 'io.reactivex.rxjava2:rxjava:2.1.13' }}这样就是强制rxjava使用2.1.13版本了。
总结
三种方式各有不同场景,适合自己的是最好的,如有遗漏或错误欢迎指出。希望能互相交流学习。也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文介绍了Glide4高效加载图片的配置详解,分享给大家,具体如下:在build.gradle中添加glide依赖//glide依赖compile'com.gi
什么是依赖冲突依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突依赖冲突的原因依赖冲突很经常是类包之间的间接依赖引起的。每个显式声明的
AndroidStudio在引用外部依赖时,发现一直无法引用外部依赖。刚开始以为是墙的问题,尝试修改Gradle配置,未解决问题。最终发现原来是在Android
JSON使用阿里的fastJson为依赖包gradle依赖管理如下:compilegroup:'com.alibaba',name:'fastjson',ver
Maven根据最近胜利策略(nearestwinsstrategy)的原则工作,同时解决依赖冲突,这意味着它在依赖树中找到更接近的版本,它将采用该版本并忽略其他