Ошибка при слиянии dex Тип программы уже присутствует: android.support.v4.os.ResultReceiver $ MyResultReceiver
Ошибка при объединении dex
Ниже приведены зависимости.
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"
}
ошибка
- Что пошло не так: выполнение завершилось неудачно для задачи ': app: transformDexArchiveWithExternalLibsDexMergerForDebug'.
com.android.builder.dexing.DexArchiveMergerException: ошибка при слиянии архивов dex: /app/build/intermediates/transforms/dexBuilder/debug/0.jar, тип программы уже присутствует: android.support.v4.os.ResultReceiver $ 1
Ответы
Ответ 1
Это потому что вы испортили зависимости. Вы должны либо полностью перейти на зависимости AndroidX, либо остаться в библиотеке поддержки. Таким образом, вместо
implementation "android.arch.persistence.room:runtime:$room_lib"
annotationProcessor "android.arch.persistence.room:compiler:$room_lib"
использование
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"
Также не забудьте проверить gradle.properties
проекта gradle.properties
на наличие
android.useAndroidX=true
android.enableJetifier=true
Jetifier помогает библиотекам, которые зависят от старых пакетов поддержки, использовать новые пакеты AndroidX.
Что такое Jetifier? Это задача Android Gradle Plugin (теперь также может использоваться как самостоятельный инструмент), которая вызывается на этапе сборки. AGP (> = 3.2.0) автоматически применяет преобразование зависимостей, которое переписывает байт-код и ресурсы зависимостей JAR и AAR (и транзитивных зависимостей) для ссылки на новые классы и артефакты, упакованные в androidx. Вы также можете использовать его как самостоятельный инструмент для индивидуальной миграции библиотеки.
Официальная документация Jetifier
Автономный инструмент Jetifier переносит библиотеки, зависящие от поддержки библиотеки, вместо этого полагаясь на эквивалентные пакеты AndroidX. Этот инструмент позволяет напрямую переносить отдельную библиотеку вместо использования подключаемого модуля Android Gradle, поставляемого в комплекте с Android Studio.
PS Я не проверял, работает ли Anko с зависимостями AndroidX, но если он этого не делает, даже если эти свойства в ваших gradle.properties
включены, у вас нет другого выбора, кроме как отказаться от использования библиотек поддержки, как сейчас.
Ответ 2
добавьте следующие строки в gradle.properties
android.useAndroidX=true
android.enableJetifier=true
и измените зависимости вашей комнаты от build.gradle(moudel: app)
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"
Ответ 3
androidx
зависимости зависимостей androidx
. И в gradle.properties
добавьте строки ниже (если они уже не созданы, создайте файл в корневой папке).
android.useAndroidX=true
android.enableJetifier=true
Надеюсь это поможет.
Ответ 4
У меня такая же проблема.
Не смешивайте стили зависимостей (androidx и com.android.support) в своем проекте.
В своем коде попробуйте заменить
implementation "androidx.appcompat:appcompat:$support_lib"
с
implementation "com.android.support:appcompat-v7:$version_of_support_library"
Полный список миграций зависимостей можно найти здесь.
Я должен использовать зависимость старого стиля, потому что мне нужен WorkManager и согласно официальной документации WorkManager в настоящее время без зависимостей от AndroidX.
Классы WorkManager уже находятся в пакете androidx.work, но в настоящее время зависят от Support Library 27.1 и связанных версий компонентов Arch. Версия WorkManager с зависимостями AndroidX будет выпущена в будущем.
Ответ 5
Для меня это работало с Refactor → Migrate to AndroidX в Android Studio. Это, казалось, разрешало любые вещи, которые я, возможно, пропустил, когда пытаюсь выполнить миграцию AndroidX за один раз за раз. https://developer.android.com/jetpack/androidx/migrate
Ответ 6
Проверьте пакет, который сталкивается с com.android.support и исключает его из этого пакета. Для меня я использовал пакеты androidx, а также FCM, где было столкновение. Итак, это исправлено для меня:
implementation ('com.google.firebase:firebase-core:16.0.4') {
exclude group: 'com.android.support'
}
Ответ 7
для моего экземпляра я обновил версию "com.github.bumptech.glide: glide: 4.0.0 до реализации" com.github.bumptech.glide: glide: 4.7.1 '
Ответ 8
Для меня работала Refactor → Migrate to AndroidX в Android Studio. Это, казалось, разрешало любые вещи, которые я, возможно, пропустил, когда пытаюсь выполнить миграцию AndroidX за один раз за раз. https://developer.android.com/jetpack/androidx/migrate
Ответ 9
androidx
зависимости зависимостей androidx
. И в gradle.properties
добавьте строки ниже (если они уже не созданы, создайте файл в корневой папке).
android.useAndroidX=true android.enableJetifier=true
Надеюсь это поможет.