内容简介:***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 左右滑动冲突
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
像计算机科学家一样思考Python (第2版)
[美] 艾伦 B. 唐尼 / 赵普明 / 人民邮电出版社 / 2016-7 / 49.00
本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。 全书共21章,详细介绍Python语言编程的方方面面。本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量、表达式、语句、函数和数据结构。书中还探讨了如何处理文件和......一起来看看 《像计算机科学家一样思考Python (第2版)》 这本书的介绍吧!