Ошибка при слиянии dex Тип программы уже присутствует: android.support.v4.os.ResultReceiver $ MyResultReceiver - PullRequest
0 голосов
/ 17 мая 2018

Ошибка при объединении 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

Ответы [ 8 ]

0 голосов
/ 05 декабря 2018

Проверьте пакет, который конфликтует с com.android.support и исключите его из этого пакета. Для меня я использовал пакеты androidx, а также FCM, где произошло столкновение. Итак, это исправлено для меня:

implementation ('com.google.firebase:firebase-core:16.0.4') {
    exclude group: 'com.android.support'
}
0 голосов
/ 31 октября 2018

Это то, что у меня работало, была опция Refactor -> Migrate to AndroidX в Android Studio. Похоже, это разрешило все, что я мог упустить при попытке выполнить миграцию AndroidX по одной зависимости за раз. https://developer.android.com/jetpack/androidx/migrate

0 голосов
/ 03 декабря 2018

Миграция зависимостей в androidx зависимость.И в gradle.properties добавьте следующие строки (если файл еще не создан, создайте файл в корневой папке).

android.useAndroidX=true
android.enableJetifier=true

Надеюсь, это поможет.

0 голосов
/ 31 октября 2018

Что мне помогло, так это опция «Рефакторинг -> Миграция на AndroidX» в Android Studio. Похоже, это разрешило все, что я мог упустить при попытке выполнить миграцию AndroidX по одной зависимости за раз. https://developer.android.com/jetpack/androidx/migrate

0 голосов
/ 28 июня 2018

добавьте следующие строки в 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"
0 голосов
/ 06 июня 2018

У меня была такая же проблема.

Не смешивайте стили зависимостей (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, но в настоящее время зависят от библиотеки поддержки 27.1 и связанных версий компонентов Arch.Версия WorkManager с зависимостями AndroidX будет выпущена в будущем.

0 голосов
/ 31 мая 2018

для моего экземпляра я обновился с реализации 'com.github.bumptech.glide: glide: 4.0.0 до реализации' com.github.bumptech.glide: glide: 4.7.1 '

0 голосов
/ 22 мая 2018

Это потому, что вы испортили зависимости. Вы должны либо полностью перейти на зависимости 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 на

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.

P. S. Я не проверял, работает ли Anko с зависимостями AndroidX, но если он этого не делает, даже если эти свойства в gradle.properties включены, у вас нет другого выбора, кроме как использовать библиотеки поддержки, как сейчас.

...