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.
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 compileSdkVersion
line 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
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.
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.
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.
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'
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'
}
Ajouter ceci à build.gradle (application du module) a fonctionné pour moi:
compile 'com.Android.support:support-annotations:27.1.1'
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 !!
Accédez au build.gradle (application du module) de votre projet:
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.
Ajoutez ceci à votre fichier de classement.
implementation 'com.Android.support:support-annotations:27.1.1'
Un autre moyen simple de résoudre ce problème consiste à modifier votre build.gradle
(app):
Android
et changer compileSdkVersion 26
en compileSdkVersion 27
defaultConfig
et changer targetSdkVersion 26
en targetSdkVersion 27
dependencies
et remplacez implementation 'com.Android.support:appcompat-v7:26.1.0'
par implementation 'com.Android.support:appcompat-v7:27.1.1'
// 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'
}
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.
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.
build.gradle
- classpath 'com.Android.tools.build:gradle:3.2.0'
( Track Android.build.gradle
release & this ) buildToolVersion
(version Track buildToolVersion )compileSdkVersion
et targetSdkVersion
Suivre la sortie de la plate-forme Bonne codage! :)
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
Ajouter cette ligne sous les dépendances dans votre fichier gradle
compile 'com.Android.support:support-annotations:27.1.1'
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'
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.