2016-07-04 43 views
5

我想在我的應用程序中使用Espresso 2.0,以測試UI元素。然而,Gradle不會這麼做。它給了我這個消息Android版本24.0.0和Espresso 2.0 gradle異常

Error:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (24.0.0) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details. 

這是我的gradle 文件

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 24 
buildToolsVersion "24.0.0" 

defaultConfig { 
    applicationId "theo.testing.espressotutorial" 
    minSdkVersion 14 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 


} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 

packagingOptions{ 
    exclude 'LICENSE.txt' 
    } 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:24.0.0' 

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0' 

// Android JUnit Runner 
androidTestCompile 'com.android.support.test:runner:0.5' 
// JUnit4 Rules 
androidTestCompile 'com.android.support.test:rules:0.5' 
} 

我應該更新的測試運行?這讓我很頭疼。

謝謝,

泰奧。

回答

12

Espresso具有導致這些問題的傳遞依賴性。您只需排除所有依賴於組com.android.supportandroidTest依賴:

// Exclude Espresso's transitive dependencies to all packages in group com.android.support 
configurations.androidTestCompile.dependencies.each { androidTestCompileDependency -> 
    androidTestCompileDependency.exclude group: 'com.android.support' 
} 

你應該用咖啡2.2.2!一個完整的例子:

dependencies { 

    def espressoVersion = '2.2.2' 
    def testRunnerVersion = '0.5' 

    androidTestCompile "com.android.support.test:runner:${testRunnerVersion}" 
    androidTestCompile "com.android.support.test:rules:${testRunnerVersion}" 
    androidTestCompile "com.android.support.test.espresso:espresso-core:${espressoVersion}" 
    androidTestCompile "com.android.support.test.espresso:espresso-contrib:${espressoVersion}" 
    androidTestCompile "com.android.support.test.espresso:espresso-intents:${espressoVersion}" 

    configurations.androidTestCompile.dependencies.each { androidTestCompileDependency -> 
     androidTestCompileDependency.exclude group: 'com.android.support' 
    } 
} 
相關問題