app(1.1)和测试app(1.3)的已解决版本有所不同

时间:2018-01-09 21:21:23

标签: android android-studio gradle hamcrest

我是android和gradle的初学者。我看到了这个错误,所以我从模块gradle中删除了hamcrest依赖项,但我仍然看到以下错误:

  

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

     
    

与依赖的冲突&org.hamcrest:hamcrest-core'在项目':app'。 app(1.1)和测试应用程序(1.3)的已解决版本     不同。

  

此依赖项导致问题:

compile 'com.android.support.test:testing-support-lib:0.1'

应用等级:

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
        classpath 'com.google.gms:google-services:3.1.0'
    }
}

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

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

模块gradle(我有一个模块):

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.stavalfi.app1"
        minSdkVersion 18
        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'
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.google.android.gms:play-services-maps:11.0.4'
    implementation 'com.google.firebase:firebase-database:11.0.4'
    compile 'com.google.firebase:firebase-core:11.0.4'
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'
    compile 'com.android.support:support-annotations:22.2.0'
    androidTestCompile 'com.android.support.test:runner:1.0.0'
    androidTestCompile 'com.android.support.test:rules:1.0.0'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:3.0.0'
    compile 'com.android.support.test:testing-support-lib:0.1'
    compile 'com.android.support.test.uiautomator:uiautomator-v18:2.0.0'
}//testImplementation



apply plugin: 'com.google.gms.google-services'

我尝试过:

//testCompile 'junit:junit:4.12'
testCompile('junit:junit:4.12') { // Prevent duplication conflicts
    exclude module: 'hamcrest-core'
    exclude module: 'hamcrest-library'
    exclude module: 'hamcrest-integration'
}

但我得到同样的错误。

我也看到了这个解决方案,但我不知道在哪里准确添加配置:

Robolectric 3.0-rc2 Hamcrest-core conflict

如果我不使用hamcrest,我也不明白为什么我需要解决这个问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

在buildtypes下面添加configuration.all。

configurations.all {}

 android {
            compileSdkVersion 26
            defaultConfig {
                applicationId "com.nfs.ui.notesapp"
                minSdkVersion 14
                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'
                }
            }


    configurations.all {
                resolutionStrategy.force 'com.android.support:support-annotations:24.0.0'
            }

        }