web-dev-qa-db-fra.com

Conflit avec la dépendance 'com.Android.support:support-annotations'. Les versions résolues pour app (23.1.0) et test app (23.0.1) diffèrent

En construisant, j'obtiens l'erreur suivante: 

Conflict with dependency 'com.Android.support:support-annotations'. Resolved versions for app (23.1.0) and test app (23.0.1) differ.

Ce sont mes dépendances

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.Android.support:support-v4:23.1.0'
    compile 'com.Android.support:appcompat-v7:23.1.0'
    compile 'com.Android.support:design:23.1.0'
    compile 'com.Android.support:cardview-v7:23.1.0'
    compile 'com.Android.support:recyclerview-v7:23.1.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.squareup:otto:1.3.8'
    compile 'com.snappydb:snappydb-lib:0.5.2'
    compile 'com.esotericsoftware.kryo:kryo:2.24.0'
    compile 'com.google.dagger:dagger:2.0.1'
    apt 'com.google.dagger:dagger-compiler:2.0.1'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'io.reactivex:rxandroid:1.0.1'
    compile 'io.reactivex:rxjava:1.0.14'
    compile 'com.google.Android.gms:play-services-location:8.1.0'
    compile 'com.google.Android.gms:play-services-gcm:8.1.0'
    compile 'org.Apache.commons:commons-lang3:3.4'
    testCompile 'junit:junit:4.12'
    testCompile 'org.hamcrest:hamcrest-library:1.3'
    testCompile 'org.mockito:mockito-core:1.10.19'
    androidTestCompile 'com.Android.support.test:runner:0.4'
    androidTestCompile 'com.Android.support.test:rules:0.4'
    androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.Android.support.test.espresso:espresso-intents:2.2.1'
    androidTestCompile 'com.Android.support.test.espresso:espresso-web:2.2.1'
    debugCompile 'com.squareup.leakcanary:leakcanary-Android:1.3.1'
    releaseCompile 'com.squareup.leakcanary:leakcanary-Android-no-op:1.3.1'
}

Comment puis-je réparer cela?

115
barq

Vous pouvez forcer la bibliothèque d'annotations dans votre test en utilisant:

androidTestCompile 'com.Android.support:support-annotations:23.1.0'

Quelque chose comme ça:

  // Force usage of support annotations in the test app, since it is internally used by the runner module.
  androidTestCompile 'com.Android.support:support-annotations:23.1.0'
  androidTestCompile 'com.Android.support.test:runner:0.4.1'
  androidTestCompile 'com.Android.support.test:rules:0.4.1'
  androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2.1'
  androidTestCompile 'com.Android.support.test.espresso:espresso-intents:2.2.1'
  androidTestCompile 'com.Android.support.test.espresso:espresso-web:2.2.1'

Une autre solution consiste à utiliser ceci dans le fichier de niveau supérieur:

configurations.all {
    resolutionStrategy.force 'com.Android.support:support-annotations:23.1.0'
}
202
Gabriele Mariotti

Projet de reconstruction a résolu mon problème.

Dans Android Studio, dans la barre d’outils .. Construire> Reconstruire le projet.

65
Sushanth Kille

Source: CodePath - Tests d'interface utilisateur avec Espresso

  1. Enfin, nous devons extraire les dépendances Espresso et définir le lanceur de test dans notre application build.gradle:
// build.gradle
...
Android {
    ...
    defaultConfig {
        ...
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    ...
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2') {
        // Necessary if your app targets Marshmallow (since Espresso
        // hasn't moved to Marshmallow yet)
        exclude group: 'com.Android.support', module: 'support-annotations'
    }
    androidTestCompile('com.Android.support.test:runner:0.5') {
        // Necessary if your app targets Marshmallow (since the test runner
        // hasn't moved to Marshmallow yet)
        exclude group: 'com.Android.support', module: 'support-annotations'
    }
}

J'ai ajouté cela à mon fichier de notes et l'avertissement a disparu.

En outre, si une autre dépendance est répertoriée comme étant en conflit, telle que des annotations de support, essayez de l'exclure également des dépendances androidTestCompile.

25
rexxar

vous pouvez essayer d'utiliser 

  androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.Android.support', module: 'support-annotations'
})

au lieu de

androidTestCompile 'com.Android.support.test:runner:0.4.1'

androidTestCompile 'com.Android.support.test:rules:0.4.1'

androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.Android.support.test.espresso:espresso-contrib:2.2.1'
12
jingsong yang

Je recevais cette erreur

Erreur: L'exécution a échoué pour la tâche ': app: preDebugAndroidTestBuild' . Conflit avec la dépendance 'com.Android.support:support-annotations' dans le projet ': app'. Les versions résolues pour app (26.1.0) et test (27.1.1) diffèrent. Voir https://d.Android.com/r/tools/test-apk-dependency-conflicts.html pour plus de détails.

J'avais des dépendances suivantes dans mon fichier build.gradle sous Gradle Scripts

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:26.1.0'
implementation 'com.Android.support:support-v4:26.1.0'
implementation 'com.Android.support:support-vector-drawable:26.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'
}

Donc, je l'ai résolu en commentant les dépendances suivantes 

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'

Donc, mes dépendances ressemblent à ceci

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:26.1.0'
implementation 'com.Android.support:support-v4:26.1.0'
implementation 'com.Android.support:support-vector-drawable:26.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'
}

J'espère que ça aide!

4
Shahbaz Ali

J'ai eu la même erreur aujourd'hui:  

Erreur: l'exécution a échoué pour la tâche ': app: preDebugAndroidTestBuild'.> Conflit avec la dépendance 'com.Android.support:support-annotations' dans projet ': app'. Versions résolues pour l'application (26.1.0) et l'application test (27.1.1) diffèrent.

Ce que j'ai fait:  

  • J'ai simplement mis à jour toutes mes dépendances à 27.1.1 au lieu de 26.1.0
  • En outre, mis à jour mon compileSdkVersion 27 et targetSdkVersion 27 qui étaient 26 plus tôt

Et l'erreur com.Android.support:support-annotations avait disparu!

Pour réf:

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'
    implementation 'com.Android.support:design:27.1.1'
    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'
}
4
Rohit Sharma

Dans mon cas, j'ai ajouté le code ci-dessous dans les dépendances de build.gradle de niveau d'application.

androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.Android.support', module: 'support-annotations'
})

Après cela, je nettoie le projet et reconstruis.Mon problème résolu.

1
Mohammed Nishar

Modifiez vos fichiers build.gradle au niveau de l’application:

implementation 'com.Android.support:appcompat-v7:23.1.0' 

à

 implementation 'com.Android.support:appcompat-v7:23.0.1'
0
chetu

Essaye ça :

apply plugin: 'com.Android.application'

Android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.example.yourpackagename"
    minSdkVersion 15
    targetSdkVersion 27
    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.3'
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'
}
0
Hanisha