62 votes

Impossible de résoudre : com.Android.support:appcompat-v7:27.+ (Dependency Error)

J'ai ce problème dans Android studio.

Error:Failed to resolve: com.android.support:appcompat-v7:27.+
<a href="install.m2.repo">Install Repository and sync project</a><br><a href="open.dependency.in.project.structure">Show in Project Structure 
dialog</a>

Mon Android Studio est rempli d'erreurs Android studio ne peut pas identifier les bibliothèques. L'écran entier ressemble à ceci.

image

C'est mon Gradle code :

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.1"

    defaultConfig {
        applicationId "com.example.hp.temp"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:27.+'
}

0 votes

Avez-vous essayé d'installer le repostiory et de synchroniser le projet ?

0 votes

Si vous vivez dans certains pays comme l'Iran, malheureusement google ne supporte pas votre gradle, vous devez donc utiliser un vpn pour obtenir les dépendances de gradle.

0 votes

En fait, cette réponse ne devrait pas être marquée comme dupliquée car les exigences techniques de la solution diffèrent de la réponse source.

120voto

Aryan Points 15417

Trouver la racine build.gradle et ajoutez-y le repo de google maven allprojects étiquette

repositories {
        mavenLocal()
        mavenCentral()
        maven {                                  // <-- Add this
            url 'https://maven.google.com/' 
            name 'Google'
        }
    } 

Il est préférable d'utiliser une version spécifique plutôt qu'une version variable.

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

Si vous utilisez le plugin Android pour Gradle 3.0.0 ou une version plus récente

repositories {
      mavenLocal()
      mavenCentral()
      google()        //---> Add this
} 

et injecter la dépendance de cette manière :

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

0 votes

implementation 'com.android.support:appcompat-v7:27.0.0' Comment décider de la version à spécifier ? Cela donne toujours une erreur dex. v7:27.0.1 o v7:27.0.2

2 votes

Je préfère toujours utiliser la dernière version, la plus récente étant la suivante 27.0.2 Activez le multidex si vous obtenez une erreur dex.

0 votes

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex Je reçois continuellement cette erreur. J'ai effectué de nombreuses corrections, mais rien n'y fait. De plus, lorsque je règle CompileSdkVersion 26 Il compile mais l'application se plante dans le téléphone. J'ai aussi activé le support multidex, toujours le même problème.

57voto

D_Alpha Points 1715

Si vous utilisez Android Studio 3.0 ou supérieur assurez-vous que votre projet build.gradle devrait avoir un contenu similaire à-

buildscript {                 
    repositories {
        google()
        jcenter()
    }
    dependencies {            
        classpath 'com.android.tools.build:gradle:3.0.1'

    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

Note- la position compte vraiment ajouter google() avant jcenter()

Et pour sous Android Studio 3.0 et à partir de bibliothèques de soutien 26.+ votre projet build.gradle doit ressembler à ça

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

Vérifiez les liens ci-dessous pour plus de détails.

1- Création d'applications Android

2- Ajouter les dépendances de construction

3- Configurer votre construction

3 votes

Google doit être placé avant jcenter, comme vous l'avez fait, ou l'erreur continuera à apparaître.

0 votes

Correct @Ben-J la position compte vraiment :)

0 votes

Mettre google avant jcenter résout le problème pour moi !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X