说明:
在我使用 citypicker框架的时候,这个框架所附带的依赖与我的项目本身的依赖产生了冲突,并且我的项目并没有升级AndroidX,而它引用了AndroidX。我并不想修改我的项目,就决定将citypicker内的依赖排除,过程如下
使用Gradlew 命令:
1.直接在Android Studio的底部工具栏点击 Terminal
,会自动进入工程根目录。然后输入adb help,查看你有没有配置Terminal
在这一步你有可能提示xx不是内部命令
则需要配置用户系统变量:
切换到“我的电脑”配置Path--(配置用户Path,配置系统Path会失败)
一:新建一个-GRADLE_HOME: C:\Users\计算机名.gradle\wrapper\dists (这里是gradle路径)
二:在用户Path后面添加:";%GRADLE_HOME%\bin"
三:打开命令行窗口,输入 gradle -v (出现gradle详情即说明配置成功)
ps:在 Mac 系统下执行./gradlew ...,在windows 下执行gradle.bat ...。
写的简单,这里有我之前看到的一个教程 Android studio Teminal配置及使用 - 简书
2.一般情况下,gradlew
是没有有可执行权限的,所以需要使用下面的命令增加可执行权限
chmod +x gradlew
3.执行下面的命令就会打印出依赖树
gradlew -q :app:dependencies //“app”为module名称
4.然后ctrl + f 查找你认为有问题的依赖,比如我就知道项目报错是在我引入 citypicker 框架之后
5.找到哪些包有重复引用后,然后使用 exclude
eg:在这里我的项目本身引入的是gson2.8.0,citypicker引入的是gson2.8.6;产生了冲突,使Android studio不知道执行哪个版本了,所以我将citypicker中的gson排除了,另外两个是AndroidX的依赖
implementation 'com.google.code.gson:gson:2.8.0'
//城市选择器
implementation ('com.github.crazyandcoder:citypicker:6.0.2'){
exclude group: 'com.google.code.gson', module: 'gson'
exclude group: 'androidx.appcompat', module: 'appcompat'
exclude group: 'androidx.recyclerview', module: 'recyclerview'
}