web-dev-qa-db-fra.com

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.

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 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 . Informations: Tâches de niveau [: 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 eu

j'ai aussi essayé d'ajouter ce code à ma dépendance .. J'ai aussi essayé 27.1.1 et 26.1.0 .. Cela n'a pas fonctionné non plus.

79
bibash acharya

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

Première solution: ajoute aux dépendances de votre module de gradation cette ligne

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

et synchroniser votre projet

Remarque: si vous utilisez Android studio 3+, changez compile en implementation

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

dans le projet ajouter 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 compileSdkVersionline en

compileSdkVersion rootProject.ext.compileSdkVersion

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

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

et synchroniser votre projet

Remarque: si vous utilisez Android studio 3+, changez compile en implementation

Pour connaître la différence entre compile et implementation, regardez ceci Quelle est la différence entre implémentation et compilation progressive

161
emadabel

Ajoutez la ligne ci-dessous dans votre fichier app.gradle avant le bloc 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.

 Configurations.all block

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

  2. Il existe un moyen supplémentaire de supprimer toute l’implémentation de test du fichier app.gradle, ce qui résoudrait l’erreur. Dans ce cas également, vous n’aurez pas besoin d’ajouter le bloc de configuration ni de modifier la version de target.

J'espère que cela pourra aider.

44
Harsh Jain

Si vous utilisez la version 26 , la version des dépendances internes doit être 1.0.1 et 3.0.1 i.e., 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 i.e., comme suit

  androidTestImplementation 'com.Android.support.test:runner:1.0.2'
  androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'
23
Harish

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

il suffit de mettre ceci dans vos dépendances:

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'
}
23
Uray Febri

Ajouter ceci à build.gradle (application du module) a fonctionné pour moi:
compile 'com.Android.support:support-annotations:27.1.1' 

9
Sanzhar Askaruly

Ne t'inquiète pas C'est simple:

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

Maintenant - Faites défiler le programme et allez dans 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 cet effacez les deux dernières lignes de code et reconstruisez l'application, et maintenant cela fonctionnera

Les dépendances devraient ê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'

}


Reconstruire l'application et ça marche !!  

5
Manika Agrawal

Accédez au build.gradle (application du module) de votre projet:

 enter image description here

Suivez la photo et changez la version:

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 Modifiez la ligne avec cette ligne:

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

et si tout va bien, vous résoudrez votre bogue.

3
Maijied Hasan Shuvo

Ajoutez ceci à votre fichier de classement.

implementation 'com.Android.support:support-annotations:27.1.1'
1
Jeffy

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

  1. Aller à la balise Android et changer compileSdkVersion 26 en compileSdkVersion 27
  2. Aller à la balise defaultConfig et changer targetSdkVersion 26 en targetSdkVersion 27
  3. Passez à la balise dependencies et remplacez implementation 'com.Android.support:appcompat-v7:26.1.0' par implementation 'com.Android.support:appcompat-v7:27.1.1'
1
Realdo Dias

Mise à jour importante

Aller au niveau du projet build.gradle, définir 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.

app 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...
}

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 consiste à rendre vos versions identiques à celles de tous les modules. Pour que vous n'ayez pas de conflits.

Conseils importants

Je me sentais quand j'ai mis à jour des versions de everything- gradle, sdks, bibliothèques etc. alors je fais face à moins d'erreurs. Parce que les développeurs travaillent difficile de faciliter le développement sur Android Studio.

Toujours avoir les versions les plus récentes mais stables Les versions instables sont alpha, beta et rc, ignorez-les dans le développement. 

J'ai mis à jour tous les projets ci-dessous et je ne fais plus face à ces erreurs.

Bonne codage! :)

1
Khemraj

J'ai le même problème, dans build.gradle (Module: app) Ajoutez la ligne de code suivante dans les dépendances:

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

Cela a fonctionné pour moi parfaitement 

1

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

compile 'com.Android.support:support-annotations:27.1.1'
0
Pavitha

Si changer de version de sdk cible ne vous aide pas, si vous avez une dépendance avec la version 3.0.2, changez-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'
0
Harshad

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, il y a:

Utilisez une balise externe et notez le code ci-dessous dans le fichier build.gradle de niveau supérieur. Vous allez changer la version en une variable plutôt qu'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-ci étant proche de (Module: app).

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'aurez aucune erreur.


Vous n'avez rien besoin d'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 à partir de Préférences> SDK Android ou Outils> Android> Gestionnaire de SDK.

 enter image description here

0
Onur Tuna