48 votes

Erreur lors de la fusion dex Type de programme déjà présent: android.support.v4.os.ResultReceiver$MyResultReceiver

Erreur lors de la fusion de la dex

suivantes sont les dépendances.

Erreur

  • Qu'est-ce qui s'est mal passé: Exécution a échoué pour la tâche ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.> com.android.builder.dexing.DexArchiveMergerException: Erreur tout en fusionnant les archives dex: /app/build/intermediates/transforms/dexBuilder/debug/0.jar, Type de programme déjà présent: android.support.v4.os.ResultReceiver$1

93voto

artnest Points 1278

C'est parce que vous foiré les dépendances. Vous devez migrer entièrement à AndroidX dépendances ou de séjour sur le Soutien de la bibliothèque celles de. Ainsi, au lieu de

implementation "android.arch.persistence.room:runtime:$room_lib"
annotationProcessor "android.arch.persistence.room:compiler:$room_lib"

utilisation

implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"

Veillez également à vérifier votre gradle.properties le fichier de projet pour contenir

android.useAndroidX=true
android.enableJetifier=true

Jetifier à aider les bibliothèques qui dépendent de vieux paquets de Soutien, l'utilisation de la nouvelle AndroidX ceux.

Qu'est-ce que Jetifier? C'est un Android Plugin Gradle tâche (maintenant, peut également être utilisé comme un outil autonome) qui est invoquée pendant la phase de construction. AGP (>= 3.2.0) ne s'appliquent automatiquement à la dépendance de la traduction qui réécrit le bytecode et les ressources de POT et de l'AAR dépendances (et les dépendances transitives) pour référencer le nouveau androidx-emballés, les classes et les objets. Vous pouvez également l'utiliser comme un outil autonome à titre individuel, de migrer d'une bibliothèque.

Jetifier La Documentation Officielle

La version autonome de Jetifier outil migre soutien-bibliothèque-bibliothèques dépendantes à compter sur l'équivalent AndroidX de paquets au lieu. L'outil vous permet de migrer d'une personne de la bibliothèque directement, au lieu d'utiliser l'Android plugin gradle livré avec Android Studio.

P. S. je n'ai pas testé si Anko fonctionne avec AndroidX dépendances, mais si elle n'est pas, même si ces propriétés dans votre gradle.properties sont activés, vous n'avez pas d'autre choix, mais le secours à l'aide de bibliothèques de prise en charge pour l'instant.

18voto

Aung Myo Lwin Points 943

ajouter les lignes suivantes sur ``

et changer de dépendance de chambre sur build.gradle(moudel:app)

9voto

Naveen T P Points 2648

Migrer les dépendances vers les dépendances. Et en plus des lignes ci-dessous (Si ce n'est pas déjà créé, créez le fichier dans le dossier racine).

J'espère que cela aide.

3voto

toobsco42 Points 613

C'est ce qui a fonctionné pour moi a été Refactor - Migrate à AndroidX option dans Android Studio. Cela semblait résoudre toutes les choses que j'ai pu manquer en essayant de faire la migration AndroidX une dépendance à la fois. https://developer.android.com/jetpack/androidx/migrate

2voto

mtwain Points 81

J'ai eu le même problème.

Ne pas mélanger les dépendances de styles(androidx et com.android.de soutien) dans votre projet.

Dans votre code, essayer de remplacer l'

implementation "androidx.appcompat:appcompat:$support_lib"

avec

implementation "com.android.support:appcompat-v7:$version_of_support_library"

Une liste complète des dépendances de la migration, vous pouvez le trouver ici .

Je dois utiliser les vieux style de dépendance parce que j'avais besoin WorkManager et selon la documentation officielle WorkManager actuellement sans AndroidX dépendances.

WorkManager classes sont déjà dans le androidx.paquet de travail, mais dépendent actuellement de l'Appui de la Bibliothèque de 27.1, et l'Arc versions de composants. La Version de WorkManager avec AndroidX dépendances sera publié dans l'avenir.

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