说明:

在我使用 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名称

android.support.v4.content.FileProvider 依赖 android依赖冲突_ci

4.然后ctrl + f 查找你认为有问题的依赖,比如我就知道项目报错是在我引入 citypicker 框架之后

android.support.v4.content.FileProvider 依赖 android依赖冲突_ci_02

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'
    }