开始填坑
首先说下我的项目是基于组件化进行开发的所以升级后也遇到很多网上找不到的bug在此记录下,避免以后工作中在遇到.
1.在app级别gradle中添加google() 分别在buildscript、allprojects的repositories{google()}并且要添加到jcenter()的上面,不然会在编译时报错.
2.替换所有compile为implementation或api,因为我的项目是支持组件化的,所以我在更改common的build.gradle时将部分替换为api.
这里说下implementation和api的区别:
implementation引用第三方依赖时需要导入,当该module限于当前模块使用.
api 引用第三方依赖时需要导入,可以提供给其他模块使用.
3.使用aar包时需要使用api(name: 'aar包的名称', ext: 'aar')
4.去除重复依赖:exclude.
module 可以去除指定模块名称的重复依赖jar
group 可以去除指定一组重复名称的依赖jar
如果不知道是使用了哪个jar包导致的重复依赖,可以在studio的terminal中查看,命令: gradle -q common:dependencies 可以将common替换为你自己想检查的模块名称,带有 -> 都有可能版本不一致导致冲突所以需要将其替换.
替换代码: api("com.alibaba:arouter-api:1.2.0") { exclude module: 'support-v4' }
这里不建议进行全局替换的方法,虽然简单但在3.0中好像不好使.
网友评论