web-dev-qa-db-fra.com

Android Studio 3.0 L'exécution a échoué pour la tâche: impossible de fusionner dex

Le studio Android obtenait une erreur de construction lors de l'exécution de la construction avec les éléments suivants:

Erreur: L'exécution a échoué pour la tâche ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'. Exception Java.lang.Runtime: Exception Java.lang.Runtime: com.Android.builder.dexing.DexArchiveMergerException: impossible de fusionner dex "

Mon application: fichier build.gradle:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.pdroid.foodieschoice"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

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.constraint:constraint-layout:1.0.2'
    compile 'com.firebaseui:firebase-ui-auth:2.3.0'

    testCompile 'junit:junit:4.12'
}
configurations.all {
    resolutionStrategy {
        force 'com.Android.support:appcompat-v7:26.0.1'
        force 'com.Android.support:support-compat:26.0.1'
        force 'com.Android.support:support-core-ui:26.0.1'
        force 'com.Android.support:support-annotations:26.0.1'
        force 'com.Android.support:recyclerview-v7:26.0.1'
    }
}

apply plugin: 'com.google.gms.google-services'

des solutions

Edit: je ai fait avec échantillon via firebase github site et résolu

65
Anguraj

Pour un projet basé sur Cordova, exécutez cordova clean Android avant de construire à nouveau, comme @ mkimmet suggéré.

56

Cette erreur se produit lorsque vous ajoutez une bibliothèque externe qui pourrait ne pas être compatible avec votre compileSdkVersion.

Soyez prudent lorsque vous ajoutez un external library.

J'ai passé 2 jours sur ce problème et finalement, il a été résolu en suivant ces étapes.

  • Assurez-vous que toutes vos bibliothèques de support sont identiques à compileSdkVersion de votre build.gradle(Module:app) dans mon cas, il s'agit de 26. enter image description here

  • Dans votre catégorie par défaut defaultConfig , multiDexEnabled true . C'est la partie importante. multiDexEnabled True image

  • Aller à Fichier | Paramètres | Construction, exécution, déploiement | Instant Run et essayez d’activer/désactiver Instant Run à l’échange à chaud ... et cliquez sur okay Enable Instant Run to Hot swap... Image

  • Sync Votre projet.

  • Enfin, allez à Construire | cliquez sur Rebuild Project .

  • Remarque: Reconstruire le projet nettoie d’abord, puis construit le projet.

42
Niamatullah Bakhshi

Essayez d'ajouter ceci en grade

    Android {
      defaultConfig {
        multiDexEnabled true
        }
   }
28
Ishan Fernando

Essayez simplement de faire un "Build -> Clean Project". Cela a résolu le problème pour moi.

20
Anas

Résolution:

Reportez-vous à à ce lien : Comme il existe différentes options pour désactiver l’avertissement en fonction du minSdkVersion , il est défini en dessous de 20 :

 Android {
     defaultConfig {
         ...
         minSdkVersion 15 
         targetSdkVersion 26
         multiDexEnabled true
     }
     ... }

 dependencies {   compile 'com.Android.support:multidex:1.0.3' }

Si vous avez une minSdkVersion supérieure à 20 dans votre jeu build.gradle, utilisez ce qui suit pour arrêter l'avertissement:

  Android {
      defaultConfig {
          ...
          minSdkVersion 21 
          targetSdkVersion 26
          multiDexEnabled true
      }
      ... }

Mettez à jour les dépendances comme suit:

     dependencies {
        implementation 'com.Android.support:multidex:1.0.3'
     }

Là encore, la seule différence concerne les mots-clés des dépendances:

minSdkVersion inférieur à 20: utilisez compile

minSdkVersion au-dessus de 20: utiliser la mise en oeuvre

  1. J'espère que cela vous a été utile. Veuillez s'il-vous-plaît voter si le problème a été résolu, merci pour votre temps.
  2. Aussi pour plus d'informations, sur pourquoi cela se produit , veuillez lire le premier paragraphe du lien, il expliquera en détail pourquoi? et que signifie cet avertissement.
15
Modesto Cabrera

Pour moi, ajouter

multiDexEnabled true

et

packagingOptions {
        exclude 'META-INF/NOTICE' 
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/notice'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license'
        exclude 'META-INF/license.txt'
    }

dans le fichier niveau de l'application Build.gradle a résolu le problème

6
Md Nakibul Hassan

J'ai essayé de nombreuses solutions mentionnées ci-dessus, y compris le multiDexEnabled, mais rien de tout cela n'a fonctionné pour moi.

Voici la solution qui a fonctionné pour moi - copiez ce code dans le fichier app\build.gradle

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.Android.support' && requested.name != 'multidex') {
            details.useVersion "${rootProject.ext.supportLibVersion}"
        }
    }
}

Assurez-vous de lancer gradlew clean avant d'exécuter le code

4
Raj

Pour moi, la correction de cette erreur a été corrigée en modifiant une ligne dans les dépendances de niveaux de mon application.

à partir de ceci:

compile('com.google.Android.gms:play-services-gcm:+') {
    force = true
}

À ceci:

compile('com.google.Android.gms:play-services-gcm:11.8.0') {
    force = true
}
2
HedeH

Utilisez multiDexEnabled true comme ci-dessous.

{
 minSdkVersion 17
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}

et

implementation 'com.Android.support:multidex:1.0.3'

cette solution a fonctionné pour moi.

2
Suresh kumar

La même chose m'est arrivée, j'ai découvert que j'étais en train de mettre à jour AS 3.0.1 et après avoir fait la mise à jour, nettoyé et reconstruit l'application, tout a été corrigé.

2
Tian Pretorius

Assurez-vous également que votre application sous-classe MultiDexApplication.

import Android.support.multidex.MultiDexApplication

class App : MultiDexApplication()

ou si vous ne sous-classez pas la classe Application, ajoutez-la à AndroidManifest.xml

<application
  Android:name="Android.support.multidex.MultiDexApplication"
1

Êtes-vous entre les mises à jour de SDK ou de plate-forme? Si oui, complétez-les complètement puis essayez de continuer. Je mets normalement à jour les paquets individuels qui doivent être mis à jour pour prendre la mise à jour complète, ce qui peut aller jusqu'à 2,5 Go parfois. Cette mise à jour complète échoue parfois. J'ai eu un certain nombre de mises à jour du SDK après la mise à niveau vers Android Studio 3.0 et le message d'erreur ci-dessus s'affichait, car tous les packages n'avaient pas été mis à jour. Une fois que j'ai mis à jour tous les paquets, l'erreur ci-dessus a disparu.

0
Vineet Jain

Accédez au fichier build.gradle de votre module, et ajoutez les lignes suivantes au code

    defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 28
        multiDexEnabled true
    }
    ...
}

dependencies {
  implementation 'com.Android.support:multidex:1.0.3'
}

Cela résout le problème facilement. Vérifiez ceci documentation

0
Mahi

Le moyen le plus simple d'éviter le type d'erreur de sucer est le suivant:

-Changez la bibliothèque combilesdkversion de la même manière que votre application compilesdkversion

-Changez la version de la bibliothèque supportLibrary de la même manière que votre build.gradle (app)

0
Sarojini2064130

J'ai fait et résolu ce problème en ne faisant que cela dans mon code

Open -> build.gradle Changer la valeur de

compile 'com.google.code.gson:gson:2.6.1'

à

compile 'com.google.code.gson:gson:2.8.2'
0

Lorsque la version de Android Studio est 3.0.1, Gradle Version est 4.1 et Android PluginVersion est 3.0.0, ce problème sera rencontré. Puis je rétrograde Gradle Version est la version 3.3, Android Android est zéro, il n'y a pas un tel problème.

0
Qian Zhang

Pour moi, le problème était l'utilisation de Java 1.8 dans un module, mais pas dans le module d'application. J'ai ajouté ceci au niveau de construction de l'application et j'ai travaillé:

Android{
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
0
Pelanes

J'avais ceci lorsque la version demandée du SDK ne correspondait pas aux dépendances. Vous pouvez cliquer sur la ligne en surbrillance et la corriger en cliquant sur l'ampoule rouge. Pas besoin de trouver la version actuelle, laissez simplement le IDE le comprendre pour vous. Et ajoutez google repo à maven config.

0
VeeKoo

Pour supprimer ce problème de Dex, implémentez une dépendance. Ce problème se produit lorsque nous utilisons plusieurs services différents à partir du même serveur. Supposons que nous utilisions des annonces et Firestore dans un projet et que les deux possèdent un référentiel. nous avons donc besoin d'appeler différentes données avec sur le référentiel, nous avons besoin de la dépendance dex à mettre en œuvre. La nouvelle mise à jour de dépendance: -

 implementation 'com.Android.support:multidex:1.0.3'

Je suis sûr que cela résoudra votre problème de façon permanente

0
Pradeep Sheoran

Dans mon cas, le passage de la version de la bibliothèque Firebase de 2.6.0 à 2.4.2 a résolu le problème.

0
Persiaware

C'est ce qui fonctionne pour moi. nettoyer préparer et courir.

cordova clean Android;
ionic cordova prepare andriod;
ionic cordova run andriod;

j'espère que ça aide.

0
Lakshan S
 1) S'il vous plaît ajoutez multiDexEnabled true 
 2) Si vous rencontrez une erreur de compilation, vérifiez votre version du niveau d'application build.gradle. Les mêmes dépendances sont implémentées avec des versions différentes. 
 3) Supprimez-en une si vous trouvez les mêmes dépendances. 

Android {compileSdkVersion 28 defaultConfig {

    minSdkVersion 17
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}
espérons que cela fonctionne bien :) Happy Coding 
0
user8363370

Je recevais la même erreur et dans le cas my, cette erreur était résolue lorsque j'ai corrigé une erreur de construction qui était associée à une variante de construction différente de celle que je construisais actuellement.

Je construisais la variante de construction que je cherchais parfaitement sans erreurs, mais une tentative de débogage entraînait une erreur app:transformDexArchiveWithExternalLibsDexMergerForDebug. Une fois que je suis passé à construire l’autre variante de construction, j’ai saisi mon erreur dans le processus de construction et je l’ai corrigé. Cela semblait résoudre mon problème app:transformDexArchiveWithExternalLibsDexMergerForDebug pour toutes les variantes de construction.

Notez que cette erreur n’était pas dans le module externe référencé mais dans un ensemble source distinct d’une variante de construction qui référencait un module externe. J'espère que cela sera utile à quelqu'un qui verra peut-être le même cas que moi!

0
ThePartyTurtle

Même problème. J'ai activé multidex: defaultConfig {applicationId "xxx.xxx.xxxx" minSdkVersion 24 targetSdkVersion 26 multiDexEnabled true

J'ai vidé le cache, lancé Gradle Clean, reconstruit, créé, essayé de m'assurer qu'aucun conflit ne se produisait dans les bibliothèques importées (suppression de toutes les dépendances transitives) et effectué toutes les mises à jour. Encore:

Erreur: L'exécution a échoué pour la tâche ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'. Java.lang.RuntimeException: com.Android.builder.dexing.DexArchiveMergerException: impossible de fusionner dex

Il s'avère que la construction n'a pas aimé: implémentation 'org.slf4j: slf4j-Android: 1.7.21'

0
trond050666