Erreur lors de la fusion du type de programme dex déjà présent: Android.support.v4.os.ResultReceiver $ MyResultReceiver
Erreur lors de la fusion du dex
voici les dépendances.
ext {
anko_version='0.10.5'
support_lib='1.0.0-alpha1'
room_lib = "1.1.0"
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "androidx.cardview:cardview:$support_lib"
implementation "com.google.Android.material:material:$support_lib"
implementation "androidx.appcompat:appcompat:$support_lib"
implementation "org.jetbrains.anko:anko:$anko_version"
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1"
implementation "Android.Arch.persistence.room:runtime:$room_lib"
annotationProcessor "Android.Arch.persistence.room:compiler:$room_lib"
}
erreur
- Ce qui s'est mal passé: L'exécution a échoué pour la tâche ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.Android.builder.dexing.DexArchiveMergerException: erreur lors de la fusion des archives dex: /app/build/intermediates/transforms/dexBuilder/debug/0.jar, type de programme déjà présent: Android.support.v4.os.ResultReceiver $ 1
C'est parce que vous avez foiré les dépendances. Vous devez migrer entièrement vers les dépendances AndroidX ou rester sur celles de la bibliothèque de support. 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 que votre fichier de projet gradle.properties
contient
Android.useAndroidX=true
Android.enableJetifier=true
Jetifier aide les bibliothèques, qui dépendent d'anciens packages de support, à utiliser les nouveaux AndroidX.
Qu'est-ce que Jetifier? Il s’agit d’une tâche Android Gradle Plugin (qui peut maintenant aussi être utilisée en tant qu’outil autonome) qui est appelée pendant la phase de construction. AGP (> = 3.2.0) applique automatiquement une traduction de dépendance qui réécrit le code octet et les ressources des dépendances JAR et AAR (et des dépendances transitives) afin de référencer les nouvelles classes et artefacts fournis par androidx. Vous pouvez également l'utiliser comme outil autonome pour migrer individuellement une bibliothèque.
Documentation officielle de Jetifier
L'outil autonome Jetifier migre les bibliothèques dépendantes de la bibliothèque de support pour qu'elles s'appuient sur les packages AndroidX équivalents. L'outil vous permet de migrer directement une bibliothèque individuelle, au lieu d'utiliser le plug-in Android gradle fourni avec Android Studio.
P. S. Je n'ai pas vérifié si Anko fonctionnait avec les dépendances d'AndroidX, mais s'il ne le fait pas même si ces propriétés de votre gradle.properties
sont activées, vous n'avez pas d'autre choix que de recourir aux bibliothèques de support pour le moment.
ajouter les lignes suivantes sur gradle.properties
Android.useAndroidX=true
Android.enableJetifier=true
et changez les dépendances de votre pièce sur build.gradle (moudel: app)
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"
Migrez les dépendances vers androidx
dépendances. Et dans gradle.properties
ajoutez les lignes ci-dessous (si elles ne sont pas déjà créées, créez le fichier dans le dossier racine).
Android.useAndroidX=true
Android.enableJetifier=true
J'espère que cela t'aides.
C’est ce qui a bien fonctionné pour moi, c’était l’option Refactor -> Migration vers AndroidX dans Android Studio. Cela semblait résoudre tout ce que j'avais peut-être oublié en essayant de faire la migration d'AndroidX une dépendance à la fois. https://developer.Android.com/jetpack/androidx/migrate
Vérifiez le package en conflit avec com.Android.support et excluez-le de ce package. Pour moi, j'utilisais des packages androidx ainsi que FCM, en cas de conflit. Donc, cela a corrigé pour moi:
implementation ('com.google.firebase:firebase-core:16.0.4') {
exclude group: 'com.Android.support'
}
J'ai eu le même problème.
Ne mélangez pas les styles de dépendances (androidx et com.Android.support) dans votre projet.
Dans votre code, essayez de remplacer
implementation "androidx.appcompat:appcompat:$support_lib"
avec
implementation "com.Android.support:appcompat-v7:$version_of_support_library"
Une liste complète des migrations de dépendances que vous pouvez trouver ici .
Je devrais utiliser une dépendance de style ancien car j'avais besoin de WorkManager et, conformément à la documentation officielle, WorkManager actuellement dépourvu de dépendances AndroidX.
Les classes WorkManager figurent déjà dans le package androidx.work, mais dépendent actuellement de Support Library 27.1 et des versions de composant Arch associées. Une version de WorkManager avec des dépendances AndroidX sera publiée ultérieurement.
Ce qui a fonctionné pour moi, c’est que Refactor -> Option de migration vers AndroidX dans Android Studio. Cela semblait résoudre tout ce que j'avais peut-être oublié en essayant de faire la migration d'AndroidX une dépendance à la fois. https://developer.Android.com/jetpack/androidx/migrate
pour mon cas, je suis passé de l'implémentation 'com.github.bumptech.glide: glide: 4.0.0 à l'implémentation' com.github.bumptech.glide: glide: 4.7.1 '