Android Studio 解决重复依赖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio 解决重复依赖相关的知识,希望对你有一定的参考价值。

参考技术A 随着引入越来越多的 三方库,不可避免的 会遇到 编译失败,提示重复依赖的问题

下面简单快速的 记录一下处理方案:

1 . 配置 gradle 环境变量

第一步 找到本机的 gradle 路径 的 bin目录,如下图

然后选择一个常用的 版本,点击进去 找到 bin 目录 如下面 我的

C:\Users\xxx\.gradle\wrapper\dists\gradle-4.6-all\bcst21l2brirad8k2ben1letg\gradle-4.6

打开环境变量 配置 系统变量,把 gradle的 bin目录配置到 path 变量,最后确定即可

2 . 查看 指定 module 的 依赖树; 重启 android Studio,打开 terminal 窗口;

cmd 命令进入 项目 跟目录,输入 gradle :app:dependencies 命令  

等待几秒 即可 看到 依赖树【注意 命令中的 app 指的是 module 的名字】如下图

3. 查找重复依赖

把 上图中的 依赖树复制 到 文档里面 搜索 “-> ” 查找 重复依赖的 地方,

4. 使用 exclude group 去除重复依赖项【如下图】

无法解析 Android Studio 3.2.1 中的依赖项

【中文标题】无法解析 Android Studio 3.2.1 中的依赖项【英文标题】:Unable to resolve dependencies in Android Studio 3.2.1 【发布时间】:2019-06-08 08:21:52 【问题描述】:

在将 gradle 更新到 5.1.1 后,我遇到了无法解决依赖关系的错误。我已经在这个thread 和这个one as well 中尝试了所有可能的解决方案。但无法解决我的问题。

这是我的错误日志:

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0.
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.3.
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:design:28.0.0.
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support.test:runner:1.0.2.
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support.test.espresso:espresso-core:3.0.2.
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0.
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.3.
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support:design:28.0.0.
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0.
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.3.
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support:design:28.0.0.
Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0.
Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.3.
Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support:design:28.0.0.
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0.
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.3.
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support:design:28.0.0.

这是应用级别的build.gradle 文件

apply plugin: 'com.android.application'

android 
    compileSdkVersion 28
    defaultConfig 
        applicationId "com.project.FirstApplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    


dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:design:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

这是项目的build.gradle

buildscript 

    repositories 
        google()
        jcenter()
        maven 
            url "https://maven.google.com"
        
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.2.1'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


allprojects 
    repositories 
        google()
        jcenter()
        maven 
            url "https://maven.google.com"
        
    


task clean(type: Delete) 
    delete rootProject.buildDir

问候

【问题讨论】:

发布项目的 build.gradle @Darish 我已经编辑了我的帖子 【参考方案1】:

对我来说,原因是我在禁区内工作。因此阻止了正在下载的文件。还有一些 gradle 无法下载所有依赖项的方式。我只是在开放的互联网连接中运行所有东西,一切都像魅力一样。

所以我按照这个thread 允许在受限环境中下载包。如果您在受限环境中工作,仍然无法解决您的问题,请联系您的网络人员。

【讨论】:

【参考方案2】:

你需要classpath 'com.android.tools.build:gradle:3.3.0',根据this for gradle 5.1.1

我不同意 Deepak 提出的将 google() 放在最后的提示。从历史上看,由于其他问题,我首先需要它。

另外,您的implementation 'com.android.support:appcompat-v7:28.0.0' 是多余的,因为已经有implementation 'com.android.support:design:28.0.0'

根据this可以删除

maven url "https://maven.google.com"

也是。

【讨论】:

【参考方案3】:

在你的项目级 Gradle 像我的例子一样改变 google() 的位置。

buildscript 
    repositories 
        jcenter()
        maven 
            url 'https://maven.fabric.io/public'
        
        maven 
            url 'https://maven.google.com/'
            name 'Google'
        
        google()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.2.1'
        classpath 'io.fabric.tools:gradle:1.25.4'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    

【讨论】:

以上是关于Android Studio 解决重复依赖的主要内容,如果未能解决你的问题,请参考以下文章

如何在android Studio中更改Kotlin android项目的名称[重复]

集成其他库 - Android Studio

错误记录Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. ) 2

错误记录Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. ) 2

无法解决 Robotium 依赖 Android Studio

解决android studio中的gradle依赖问题?