70 votes

Erreur : com.android.builder.dexing.DexArchiveBuilderException: Échec du traitement de guava-21.0.jar Android 3.1 Dev Channel

Après avoir mis à jour les versions de mes dépendances dans AndroidStudio3.1, j'ai commencé à obtenir l'erreur suivante :

    Information:Tâches Gradle [:app:assembleDebug]
Erreur:com.android.builder.dexing.DexArchiveBuilderException: Échec du traitement de C:\Users\Blabla\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\21.0\3a3d111be1be1b745edfa7d91678a12d7ed38709\guava-21.0.jar
Erreur:com.android.builder.dexing.DexArchiveBuilderException: Erreur lors du dexing.
Erreur:com.android.tools.r8.ApiLevelException: Les méthodes d'interface par défaut ne sont prises en charge qu'à partir d'Android N (--min-api 24) : java.util.Collection com.google.common.collect.BiMap.values()
Error:Échec de l'exécution de la tâche ':app:transformClassesWithDexBuilderForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Échec du traitement de C:\Users\Blabla\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\21.0\3a3d111be1be1b745edfa7d91678a12d7ed38709\guava-21.0.jar
Information:BUILD FAILED en 6s
Information:4 erreurs
Information:0 avertissements
Information:Voir le rapport complet dans la console

J'ai déjà nettoyé et reconstruit le projet. J'ai vérifié que mon "multiDexEnabled true" et que 'compile 'com.android.support:multidex:1.0.2' sont ajoutés.

Que puis-je faire d'autre ?

EDIT: Ajout de build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.blabla"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    configurations.all {
        resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:27.0.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:multidex:1.0.2'
    compile 'com.android.support:design:27.0.0'
    compile 'com.android.support:cardview-v7:27.0.0'
    compile 'com.jakewharton:butterknife:8.7.0'
    compile 'com.google.code.gson:gson:2.8.0'
    compile 'com.google.guava:guava:21.0'
    compile 'com.microsoft.azure:azure-mobile-android:3.2.0@aar'
    compile 'com.microsoft.azure:notification-hubs-android-sdk:0.4@aar'
    compile 'com.microsoft.azure:azure-notifications-handler:1.0.1@aar'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile 'com.google.firebase:firebase-core:11.4.2'
    compile 'com.google.firebase:firebase-crash:11.4.2'
    compile 'com.google.firebase:firebase-auth:11.4.2'
    compile 'com.google.firebase:firebase-database:11.4.2'
    compile 'com.google.firebase:firebase-storage:11.4.2'
    testCompile 'junit:junit:4.12'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
    compile 'com.google.android.gms:play-services-maps:11.4.2'
    compile 'com.google.android.gms:play-services-location:11.4.2'
    compile 'com.google.maps.android:android-maps-utils:0.5+'
}
apply plugin: 'com.google.gms.google-services'

0 votes

Juste après avoir publié ceci, j'ai essayé de revenir à 'com.google.guava:guava:20.0' et cela fonctionne de cette manière. Seulement lorsque je mets à jour vers 21.0 cela donne une erreur.

0 votes

Publiez votre gradle

0 votes

Montrez votre build.gradle

98voto

Nandam Mahesh Points 247

J'ai eu le même problème dans un projet react-native,

les lignes ci-dessous ont fonctionné pour moi,

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

8 votes

Cela devrait être la réponse correcte. L'erreur est liée à une dépendance qui se trouve sur une version plus récente de Java que celle que vous essayez d'utiliser. Compilez donc votre projet avec la version la plus récente, et non l'inverse, et n'ajoutez pas de configuration désordonnée à votre projet.

0 votes

Je ne pouvais pas utiliser cela car je n'étais pas en mesure de l'ajouter à la tâche compile car je n'avais pas un accès direct à celle-ci. Ceci a fonctionné pour moi à la place.

1 votes

Où dans quel fichier cela doit-il être ajouté ?

42voto

Olivier Grégoire Points 3132

Mettre à jour votre version de Guava

Guava 21 est uniquement compatible avec Java 8.

Mettez à jour votre gradle vers la version Guava 27.0.1-android, qui est compatible avec Android :

Gradle 4.6+ :

dependencies {
  implementation 'com.google.guava:guava:27.0.1-android'
}

Anciennes versions de Gradle :

dependencies {
  compile 'com.google.guava:guava:27.0.1-android'
}

2 votes

C'est tout. Mais j'ai aussi dû ajouter ce qui suit pour résoudre une autre erreur après avoir ajouté votre dépendance: android { configurations.all { resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9' } }

0 votes

@Atak où as-tu ajouté ceci ??

0 votes

@Crime_Master_GoGo "android { } " partie de build.gradle de l'application. Je l'ajoute à ma réponse pour vous

9voto

Dani Gee Points 157

J'ai eu le même problème et je l'ai résolu en nettoyant le projet et en le reconstruisant.

Dans Android Studio, allez à Build --> Clean Project et ensuite, Build --> Rebuild Project

J'espère que cela vous aidera

1 votes

La même solution a fonctionné pour moi après avoir mis à jour Kotlin.

4voto

pkuszewski Points 192

J'ai eu un cas similaire lorsque je suis passé à OkHttp 4.x. Il s'est avéré que j'ai dû désactiver le profilage de la méthode dans la configuration d'exécution : Modifier les configurations -> app -> onglet Profilage -> décocher Activer le profilage avancé. Cela a résolu mon cas mais je ne peux plus utiliser le profilage sur les anciens appareils.

0voto

Brian Titus Points 9

Dans mon cas, j'obtenais l'erreur parce que je cliquais sur le bouton "app" Debug alors que mon variant de build était défini sur release. Lorsque j'ai changé mon variant de build en debug, puis j'ai cliqué à nouveau sur le bouton Debug, l'erreur a disparu. J'espère que cela aidera quelqu'un.

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