内容简介:***implementation:***依赖方式仅仅局限于“当前module”,优点增加编译速度,对外隐藏调用接口***api:***参与app的编译和打包,是最普遍的依赖方法***compileOnly:***参与编译的过程,但不参与最后的打包。 在自己的module中依赖一些最常用的库可以避免冲突 ***runtimeOnly:***编译时不参与,对外隐藏所有的接口,只参最后的打包
***implementation:***依赖方式仅仅局限于“当前module”,优点增加编译速度,对外隐藏调用接口
***api:***参与app的编译和打包,是最普遍的依赖方法
***compileOnly:***参与编译的过程,但不参与最后的打包。 在自己的module中依赖一些最常用的库可以避免冲突 ***runtimeOnly:***编译时不参与,对外隐藏所有的接口,只参最后的打包
参考下面方法依赖冲突的解决方法
依赖冲突时的解决办法
将两种方式结合,亲测绝对有效
1.点击Terminal 输入 gradlew -q app:dependencies 回车即可将app中所依赖的库展示出来
2.在 module 下的 build.gradle 的根节点下添加如下代码
resolutionStrategy {
failOnVersionConflict()//版本冲突时报错
}
}
复制代码
然后点击右上角 Sync Now 进行同步
这时冲突的版本号就会在 Messages 页面中弹出,提示有以下版本的库是冲突的
3.这时我们有[两个]处理办法
直接统一法:将所有出现的版本号统一指定为当前版本
configurations.all {
resolutionStrategy {
failOnVersionConflict()//版本冲突时报错
force 'com.squareup.okio:okio:1.15.0'//强制指定版本
}
}
复制代码
当打包时报错的类被处理后, // failOnVersionConflict() 该方法,然后重新打包。
移除异己法:选中 okio:1.13.0 字段回到 Terminal 中按 Ctrl+F 搜索该库在哪个依赖中使用,搜索到后,找到 build.gradle 中的该依赖,将对应的包去除
implementation ('com.squareup.okhttp3:okhttp:3.9.0'){
exclude group: 'com.squareup.okio'
}
复制代码
重新编译即可发现冲突被解决
4.注意
gradle会用自动采用最新版本库的方法屏蔽掉大部分的冲突问题,但极小部分的(也就是编译时报错的)就需要我们手动去处理了,一般以上方法都是针对于处理打包时报错的相关库,请大家有针对的对于这些库进行排查。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 关于 OkHttp 依赖冲突问题的解决过程
- Flutter 如何优雅的解决依赖版本冲突
- 一款检查Gradle依赖配置是否冲突的插件
- Hash冲突解决方法
- git 通过 SublimeMerge 处理冲突
- RecyclerView 、ViewPager 左右滑动冲突
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web 2.0 Architectures
Duane Nickull、Dion Hinchcliffe、James Governor / O'Reilly / 2009 / USD 34.99
The "Web 2.0" phenomena has become more pervasive than ever before. It is impacting the very fabric of our society and presents opportunities for those with knowledge. The individuals who understand t......一起来看看 《Web 2.0 Architectures》 这本书的介绍吧!