在android studio中创建新项目后与依赖冲突

时间:2018-05-29 04:34:46

标签: android android-studio build

我正在使用android studio 3.0.1 在我创建新项目之后它会给出以下错误:

  

错误:任务':app:preDebugAndroidTestBuild'执行失败。

     
    

与项目':app'中的依赖'com.android.support:support-annotations'冲突。适用于app(26.1.0)和测试应用的已解决版本     (27.1.1)不同。看到     https://d.android.com/r/tools/test-apk-dependency-conflicts.html     的信息。

  

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

apply plugin: 'com.android.application'

    android {
        compileSdkVersion 26
        defaultConfig {

            minSdkVersion 19
            targetSdkVersion 26
            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:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.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 文件

  // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'


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

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

根据这篇文章: Error While creating new project with android studio 3.0.1

我改变了我的

implementation 'com.android.support:appcompat-v7:26.1.0'

implementation 'com.android.support:appcompat-v7:27.1.1'

但正如我正在使用

targetSdkVersion 26

我不应该使用支持库27.1.1。

如何解决此问题

接受任何帮助。 谢谢:))

5 个答案:

答案 0 :(得分:2)

  

这是由于您添加的多个库发生冲突而发生的   Gradle file.IF您的目标版本是26然后您必须使用   26 API版本的库。只需进入项目结构 - > .idea - >   库 - >删除文件夹。重启android studio或Rebuild   并清理项目。问题将解决这个问题。

答案 1 :(得分:1)

您需要确保compileSdkVersion为27。

您需要从espresso-Core中排除支持库,如下所示:

 androidTestImplementation('com.android.support.test.espresso:espresso- 
    core:3.0.2') {
        exclude group: 'com.android.support', module: 'support-annotations'
 }

答案 2 :(得分:0)

这一切都取决于你的targetSdkVersion vesion。如果它是26,你应该使用实现'com.android.support:appcompat-v7:26.1.0',如果它是27,你应该使用实现'com.android.support:appcompat-v7:27.1.1'。之后同步项目,如果不工作,请尝试清理并重建项目。

答案 3 :(得分:0)

尝试在build.gradle(应用级别1)

的底部添加此内容
configurations.all {
    resolutionStrategy.eachDependency { details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.1.0'
            }
        }
    }

}

归功于Eugen Pechanec

答案 4 :(得分:0)

如果您使用的支持库版本为27。

com.android.support:appcompat-v7:27.1.1

更改为

targetSdkVersion 27
compileSdkVersion 27

我认为它将解决您的答案