J'utilisais le support Android v4 23.1.1 et j'ai récemment essayé de le mettre à jour en 23.3.0 (le dernier en date demandé), mais j'ai l'erreur suivante:
Erreur: conflit avec la dépendance 'com.Android.support:support-annotations'.
Les versions résolues pour app (23.3.0) et test (23.1.1) sont différentes.
Voir http://g.co/androidstudio/app-test-app-conflict pour plus de détails.
Jusqu'à présent, j'ai trouvé ceci https://code.google.com/p/Android/issues/detail?id=206137
Je suis allé à la fois les liens mais je ne pouvais pas résoudre mon problème, comment puis-je résoudre ce problème?
Modifier:
Je les ai dans mes dépendances
compile 'com.Android.support:support-v4:23.3.0'
compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:recyclerview-v7:23.3.0'
compile 'com.Android.support:cardview-v7:23.3.0'
compile 'com.Android.support:design:23.3.0'
Auparavant, toutes les versions étaient 23.1.1
et l’erreur s’est produite après la mise à jour.
Modifier:
Gradle Version 2.10
Gradle Plugin Version 2.0.0
buildToolsVersion "23.0.3"
Pour ceux qui sont toujours confrontés à ce problème, ajoutez simplement cette ligne à vos dépendances.
androidTestCompile 'com.Android.support:support-annotations:23.3.0'
Cela a résolu mon problème.
METTRE À JOUR:
Si vous rencontrez cette erreur de nos jours, vous pouvez simplement insérer le nouveau code de version (23.3.0
dans ce cas, ou 27.1.1
dans May '18), comme décrit dans l’erreur dans la solution décrite ci-dessus.
Pour ceux qui sont toujours confrontés au problème, la réponse ci-dessus ne m'a pas aidé dans Android studio 2.2 Preview.
ajoutez ceci à votre fichier de classement.
configurations.all {
resolutionStrategy {
force 'com.Android.support:support-annotations:23.1.1'
}
}
Cela a résolu mon problème.
Juste pour illustrer la réponse d'Akshayraj
Fichier Gradle original:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
[...]
compile 'com.Android.support:support-annotations:25.3.0'
androidTestCompile 'com.Android.support.test:runner:0.5'
androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2.2'
}
Erreur reçue:
Erreur: conflit avec la dépendance 'com.Android.support:support-annotations' dans le projet ': app'.
Les versions résolues de l'application (25.1.0) et de l'application de test (23.1.1) diffèrent.
Voir http://g.co/androidstudio/app-test-app-conflict pour plus de détails. "
FIXE quand j'ai ajouté:
androidTestCompile 'com.Android.support:support-annotations:25.3.0'
Fichier final:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
[...]
compile 'com.Android.support:support-annotations:25.3.0'
androidTestCompile 'com.Android.support:support-annotations:25.3.0'
androidTestCompile 'com.Android.support.test:runner:0.5'
androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2.2'
}
Mon app.gradle d'origine avait:
dependencies {
// App dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.4.0'
// Testing-only dependencies
androidTestCompile 'com.Android.support.test:runner:0.3'
androidTestCompile 'com.Android.support.test:rules:0.3'
androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2'
}
ce qui a entraîné l'erreur suivante:
Erreur: conflit avec la dépendance 'com.Android.support:support-annotations'. Les versions résolues pour app (23.4.0) et test app (22.2.0) diffèrent. Voir http://g.co/androidstudio/app-test-app-conflict pour plus de détails.
Après avoir lu le lien suggéré par erreur, j'ai trouvé ces lignes:
Lorsque des tests d'instrumentation sont exécutés, l'APK principal et l'APK de test partager le même chemin de classe. La construction de Gradle échouera si l'APK principal et le test APK utilise la même bibliothèque (par exemple, Guava) mais dans des fichiers différents versions. Si Gradle ne l'a pas compris, votre application pourrait se comporter différemment pendant les tests et pendant la marche normale (y compris le crash dans l'un des cas).
J'ai donc modifié mes dépendances app.gradle pour:
dependencies {
// App dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.4.0'
// Testing-only dependencies
androidTestCompile 'com.Android.support:support-annotations:23.3.0'
androidTestCompile 'com.Android.support.test:runner:0.3'
androidTestCompile 'com.Android.support.test:rules:0.3'
androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2'
}
Même après le changement ci-dessus, Gradle n'était pas content :-(:
Erreur: conflit avec la dépendance 'com.Android.support:support-annotations'. Les versions résolues pour app (23.4.0) et test app (23.3.0) diffèrent. Voir http : //g.co/androidstudio/app-test-app-conflict pour plus de détails.
Le changement dans la version test apk était différent! J'ai donc modifié la chaîne de version comme collée ci-dessous, ce qui a fonctionné pour moi:
(Nirvana)
dependencies {
// App dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.4.0' // main APK
// Testing-only dependencies
androidTestCompile 'com.Android.support:support-annotations:23.4.0' //test APK
androidTestCompile 'com.Android.support.test:runner:0.3'
androidTestCompile 'com.Android.support.test:rules:0.3'
androidTestCompile 'com.Android.support.test.espresso:espresso-core:2.2'
}
Cela m'a pris du temps pour sortir de cette erreur. Mais voici ce qui a fonctionné pour moi, essayez-le:
NOTE: Am utilisant compileSdkVersion 26
J'ai supprimé les deux androidTestImplementation 'com.Android.support.test: runner: 1.0.2' & AndroidTestImplementation 'com.Android.support.test.espresso: espresso-core: 3.0.2' dans le bloc des dépendances de la construction. gradle (module: app). Alors j'ai fini avec ça:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.date.brian.cradletest"
minSdkVersion 15
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:26.1.0'
implementation 'com.Android.support.constraint:constraint-layout:1.1.0'
compile 'com.Android.support:design:26.1.0'
compile 'com.Android.support:cardview-v7:26.1.0'
compile 'com.Android.support:recyclerview-v7:26.1.0'
compile 'com.getbase:floatingactionbutton:1.9.0'
compile 'de.hdodenhof:circleimageview:2.1.0'
testImplementation 'junit:junit:4.12'
}
J'espère que cela vous sera utile!
Vous devez utiliser la même version pour les APK de l'application et androidTest. Pour ce faire, spécifiez la même version que votre application,
androidTestCompile 'com.Android.support:support-annotations:24.1.1'
où 24.1.1 est le numéro de version de la dépendance utilisée dans votre application
compile 'com.Android.support:design:24.1.1'
Excluez simplement les "annotations". Aucun mal ne sera fait
androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
Pour moi, La version de l'outil de construction doit être alignée sur les versions de dépendance . Supposons donc que la version de l'outil de génération soit 26.1.0
; la version de dépendance de Gradle doit y obéir.
Le moyen le plus simple est de créer une variable de version et de l’utiliser. Voir l'exemple ci-dessous
ext {
buildVersion = '26.1.0'
}
dependencies {
compile "com.Android.support:appcompat-v7:${buildVersion}"
}
Cela a été résolu après l'ajout de la dernière ligne:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:26.1.0'
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'
compile 'com.Android.support:support-annotations:27.1.1'}
Ouvrir Android Studio
Accédez à Projet> Scripts Gradle> build.gradle (Module: app).
Ajouter dependencies {androidTestCompile 'com.Android.support:support-annotations:xx.x.x'}
Vous pouvez remplacer xx.x.x par la version qui affiche une erreur
Enregistrer le script Gradle
Projet de construction
J'espère que cela fonctionnera! :)
supprimer la dépendance de test du fichier build.gradle pour résoudre les problèmes