Conflit avec la dépendance 'com.android.support:support-annotations' dans le projet ': app'. Les versions résolues de l'application (26.1.0) et de l'application de test (27.1.1) diffèrent.

106

Je suis nouveau dans le développement d'applications Android. Lorsque j'ai essayé de créer un nouveau projet, Android Project ... le message suivant est apparu.

Erreur: l'exécution de la tâche ': app: preDebugAndroidTestBuild' a échoué.

Conflit avec la dépendance 'com.android.support:support-annotations' dans le projet ': app'. Les versions résolues de l'application (26.1.0) et de l'application de test (27.1.1) diffèrent. Voir https://d.android.com/r/tools/test-apk-dependency-conflicts.html pour plus de détails. Information: tâches Gradle [: app: generateDebugSources,: app: generateDebugAndroidTestSources,: app: mockableAndroidJar]

Ceci est la capture d'écran de mon projet cliquez ici pour voir la capture d'écran de l'erreur que j'ai obtenue

J'ai également essayé d'ajouter ce code à ma dépendance .. androidTestCompile 'com.android.support:support-annotations:23.3.0' cela n'a pas fonctionné. J'ai aussi essayé 27.1.1 et 26.1.0 .. qui n'ont pas fonctionné non plus.

hashTag_bibu
la source
Vérifiez cette question: stackoverflow.com/q/43817004/9611523 . J'espère que cela aiderait.
1
La mise à jour d'Android Studio (ainsi que de l'émulateur et d'autres choses par la suite) a résolu ce problème pour moi.
Le problème est dû à la gradation d'annotation qui ne vient pas par défaut dans la création d'un nouveau projet Android Studio. Cela pourrait vous aider: readyandroid.wordpress.com/…
Prêt Android

Réponses:

182

Sur la base de votre capture d'écran, j'ai trouvé deux solutions fonctionnelles:

Première solution : ajoutez aux dépendances de votre module gradle cette ligne

compile 'com.android.support:support-annotations:27.1.1'

et synchronisez votre projet

Remarque: si vous utilisez Android Studio 3+, passez compileàimplementation

Deuxième solution : configurer les propriétés à l'échelle du projet trouvées dans la documentation https://developer.android.com/studio/build/gradle-tips.html#configure-project-wide-properties

dans le projet gradle, ajoutez cette ligne:

// This block encapsulates custom properties and makes them available to all
// modules in the project.
ext {
    // The following are only a few examples of the types of properties you can define.
    compileSdkVersion = 26
    // You can also use this to specify versions for dependencies. Having consistent
    // versions between modules can avoid behavior conflicts.
    supportLibVersion = "27.1.1"
}

Ensuite, pour accéder à cette section, changez de compileSdkVersionligne pour être

compileSdkVersion rootProject.ext.compileSdkVersion

et à la dependenciessection, changez la bibliothèque importée pour qu'elle ressemble à ceci:

compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"

et synchronisez votre projet

Remarque: si vous utilisez Android Studio 3+, passez compileàimplementation

Pour la différence entre compileet implementationregardez ceci Quelle est la différence entre l'implémentation et la compilation dans gradle

emadabel
la source
4
Je suggérerais d'utiliser `` implémentation '' au lieu de compiler
SanVed
60

Ajoutez la ligne ci-dessous dans votre fichier app.gradle avant le bloc de dépendances.

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

Il y a aussi une capture d'écran ci-dessous pour une meilleure compréhension.

Bloc Configurations.all

  1. le bloc configurations.all ne sera utile que si vous voulez que votre sdk cible soit 26. Si vous pouvez le changer en 27, l'erreur disparaîtra sans ajouter le bloc de configuration dans le fichier app.gradle.

  2. Il y a un autre moyen si vous supprimiez toute l'implémentation du test du fichier app.gradle, cela résoudrait l'erreur et dans ce cas également, vous n'avez pas besoin d'ajouter le bloc de configuration ni de changer la version de targetdk.

J'espère que cela pourra aider.

Harsh Jain
la source
Merci, économisez mon temps
Manikandan K
1
@ManikandanK heureux de vous aider!
Harsh Jain
Félicitations à vous pour avoir donné des instructions complètes! (Tant de réponses sur ce genre de sujet sont comme "Ajouter ceci:" force 'com.android.support:support-annotations:26.1.0' "avec peu / pas de contexte! (Malheureusement, cependant, j'obtiens toujours le même erreur de construction, dans mon cas "Impossible de trouver com.android.support:support-annotations:27.0.0. Requis par: trainingiq: bugsnag-react-native: unspecified> com.bugsnag: bugsnag-android: 4.3.1"
Dronz
35

Si vous utilisez la version 26, la version à l' intérieur des dépendances doit être 1.0.1 et 3.0.1, c'est-à-dire comme suit

  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

Si vous utilisez la version 27, la version des dépendances internes doit être 1.0.2 et 3.0.2, c'est-à-dire comme suit

  androidTestImplementation 'com.android.support.test:runner:1.0.2'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Harish
la source
2
Que Dieu vous bénisse, que les bibliothèques de support Android prennent en charge les versions pourrir en enfer!
Muhammad Naderi
Alors l'assistant de studio Android crée un projet à partir de zéro avec des erreurs? ¬¬
Sebastian Breit
Et 28 ?
alizulfuqar
27

Si vous utilisez Android Studio 3.1. + Ou supérieur

mettez simplement ceci dans vos dépendances de niveau:

implementation 'com.android.support:support-annotations:27.1.1'

Globalement comme ceci:

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.2'
    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'

    implementation 'com.android.support:support-annotations:27.1.1'
}
Uray Febri
la source
Merci mon pote Beaucoup d'amour
amilab
23

Cela est dû à un conflit de versions, pour le résoudre, il suffit de forcer une mise à jour de votre version de support-annotations, en ajoutant cette ligne sur votre module: app gradle

implementation ('com.android.support:support-annotations:27.1.1')

J'espère que cela résout votre problème;)

Éditer

Presque oubliée, vous pouvez déclarer une seule propriété supplémentaire ( https://docs.gradle.org/current/userguide/writing_build_scripts.html#sec:extra_properties ) pour la version, aller dans votre fichier gradle du projet (ou de votre top), et déclarez votre support, ou juste pour cet exemple, annotation version var

ext.annotation_version = "27.1.1"

Ensuite, dans votre module gradle remplacez-le par:

implementation ("com.android.support:support-annotations:$annotation_version")

Ceci est très similaire à la solution @emadabel, qui est une bonne alternative pour le faire, mais sans le bloc, ni le rootprojectpréfixe.

desgraci
la source
1
Merci desgraci la solution ci-dessus m'a aidé
BharathRao
après avoir ajouté cette ligne, j'obtiens l'erreur "Erreur: l'exécution a échoué pour la tâche ': app: processDebugManifest'.> La fusion du manifeste a échoué avec plusieurs erreurs, voir les journaux" s'il vous plaît, aidez-moi comment puis-je le résoudre
Basant
@Basant j'aurais besoin de voir quel est le problème, car c'est un problème lors de l'exécution de votre gradle, il serait préférable d'ouvrir une question pour cela
desgraci
Désolé pour la réponse tardive @desgraci, j'ai court-circuité ce problème en mettant à jour IDE
Basant
@Basant content d'entendre ça!
desgraci
9

L'ajout de ceci à build.gradle (application Module) a fonctionné pour moi:
compilez 'com.android.support:support-annotations:27.1.1'

San Askaruly
la source
7

Ne vous inquiétez pas, c'est simple:

Allez dans la structure du répertoire "Projet" et dans cela, allez dans "Scripts Gradle" et à l'intérieur, allez dans "build.gradle (Module: app)" et double-cliquez dessus.

Maintenant - Faites défiler le programme et accédez à la section des dépendances: comme ci-dessous


dépendances {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
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'

}


Maintenant, dans ce Supprimez les deux dernières lignes de code et reconstruisez l'application et maintenant cela fonctionnera

Les dépendances doivent être:


dépendances {

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'

}


RECONSTRUISEZ L'APPLICATION ET CELA FONCTIONNE !!

Manika Agrawal
la source
Vous n'avez pas expliqué ce que vous avez supprimé / ajouté. Et si les bibliothèques de tests sont nécessaires ici?
TheRealChx101
3

Accédez à build.gradle (Module App) dans votre projet:

entrez la description de l'image ici

Suivez la photo et changez ces versions:

compileSdkVersion: 27
targetSdkVersion: 27

et si android studio version 2: changez la ligne avec cette ligne:

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

else Changez la ligne avec cette ligne:

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

et j'espère que vous résoudrez votre bogue.

Maizied Hasan Shuvo
la source
2

Ajoutez ceci à votre fichier gradle.

implementation 'com.android.support:support-annotations:27.1.1'
Jeffy
la source
1

Un autre moyen simple de résoudre ce problème consiste à modifier votre build.gradle(application):

  1. Accédez au androidtag et changez compileSdkVersion 26encompileSdkVersion 27
  2. Accédez au defaultConfigtag et changez targetSdkVersion 26entargetSdkVersion 27
  3. Vous devez dependenciestaguer et changer implementation 'com.android.support:appcompat-v7:26.1.0'enimplementation 'com.android.support:appcompat-v7:27.1.1'
Realdinho
la source
1

J'ai le même problème, dans build.gradle (Module: app), ajoutez la ligne de code suivante à l'intérieur des dépendances:

dependencies 
{
   ...
   compile 'com.android.support:support-annotations:27.1.1'
}

Cela a parfaitement fonctionné pour moi

Mohammed H. Hannoush
la source
1

Mise à jour importante

Allez au niveau du projet build.gradle, définissez des variables globales

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

buildscript {
    ext.kotlinVersion = '1.2.61'

    ext.global_minSdkVersion = 16
    ext.global_targetSdkVersion = 28
    ext.global_buildToolsVersion = '28.0.1'
    ext.global_supportLibVersion = '27.1.1'
}

Accédez à build.gradle au niveau de l'application et utilisez des variables globales

build de l'application.

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

une bibliothèque build.gradle

android {
    compileSdkVersion global_targetSdkVersion
    buildToolsVersion global_buildToolsVersion
    defaultConfig {
        minSdkVersion global_minSdkVersion
        targetSdkVersion global_targetSdkVersion
}
...

dependencies {
    implementation "com.android.support:appcompat-v7:$global_supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$global_supportLibVersion"
    // and so on...
}

La solution est de rendre vos versions identiques à celles de tous les modules. Pour que vous n'ayez pas de conflits.

Conseils importants

J'ai senti que lorsque j'ai mis à jour des versions de tout - gradle, sdks, bibliothèques, etc., je suis confronté à moins d'erreurs. Parce que les développeurs travaillent dur pour faciliter le développement sur Android Studio.

Ayez toujours des versions les plus récentes mais stables Les versions instables sont alpha, betaet rcignorez-les lors du développement.

J'ai mis à jour tout ci-dessous dans mes projets, et je ne suis plus confronté à ces erreurs.

Bon codage! :)

Khemraj
la source
0

Si la modification de la version SDK cible n'aide pas, si vous avez une dépendance avec la version, 3.0.2changez-la en 3.0.1.

par exemple changer

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'

à

androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.1'
Harshad
la source
0

Une meilleure solution est expliquée dans l'explication officielle . J'ai laissé la réponse que j'ai donnée auparavant sous la ligne horizontale.

Selon la solution là-bas:

Utilisez une balise externe et notez le code suivant ci-dessous dans le fichier build.gradle de niveau supérieur . Vous allez changer la version en une variable plutôt qu'en un numéro de version statique.

ext {
    compileSdkVersion = 26
    supportLibVersion = "27.1.1"
}

Modifiez les numéros de version statiques dans votre fichier build.gradle au niveau de l' application , celui qui est (Module: app)proche.

android {
    compileSdkVersion rootProject.ext.compileSdkVersion // It was 26 for example
    // the below lines will stay
}

// here there are some other stuff maybe

dependencies {
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    // the below lines will stay
}

Synchronisez votre projet et vous n'obtiendrez aucune erreur.


Vous n'avez rien à ajouter aux scripts Gradle. Installez les SDK nécessaires et le problème sera résolu.

Dans votre cas, installez les bibliothèques ci-dessous depuis Préférences> SDK Android ou Outils> Android> Gestionnaire de SDK

entrez la description de l'image ici

Thon Onur
la source
0

Ajoutez cette ligne sous les dépendances dans votre fichier gradle

compile 'com.android.support:support-annotations:27.1.1'
Pavitha
la source