合并 dex 程序类型时出错已存在:android.support.v4.os.ResultReceiver$MyRes



合并 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

这是因为你搞砸了依赖项。您必须完全迁移到 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 包。

什么是喷射器? 这是一个Android Gradle插件任务(现在也可以用作独立工具(,在构建阶段被调用。AGP (>= 3.2.0( 会自动应用依赖转换,重写 JAR 和 AAR 依赖(以及传递依赖(的字节码和资源,以引用新的 androidx 打包的类和工件。 您还可以将其用作独立工具来单独迁移库。

喷气机官方文档

独立的 Jetifier 工具将依赖于支持库的库迁移到等效的 AndroidX 包。该工具允许您直接迁移单个库,而不是使用与 Android Studio 捆绑在一起的 Android gradle 插件。

附言我没有测试 Anko 是否适用于 AndroidX 依赖项,但如果即使启用了gradle.properties中的这些属性也无法测试,您没有其他选择,只能回退到现在使用支持库。

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"

将依赖项迁移到androidx依赖项。并在gradle.properties中添加以下行(如果尚未创建,请在根文件夹中创建文件(。

android.useAndroidX=true
android.enableJetifier=true

希望这有帮助。

这就是对我有用的是 重构 -> 迁移到 Android Studio 中的 AndroidX 选项。 这似乎解决了我在尝试一次一个依赖项进行AndroidX迁移时可能错过的任何问题。 https://developer.android.com/jetpack/androidx/migrate

我遇到了同样的问题。

不要在项目中混合使用依赖项样式(androidx 和 com.android.support(。

在您的代码中尝试替换

implementation "androidx.appcompat:appcompat:$support_lib"

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

您可以在此处找到依赖项迁移的完整列表。

我应该使用旧式依赖项,因为我需要 WorkManager,并且根据官方文档 WorkManager,目前没有 AndroidX 依赖项。

工作管理器类已经在 androidx.work 包中,但是 目前依赖于支持库 27.1 和关联的 Arch 组件版本。具有 AndroidX 依赖项的工作管理器版本 将在未来发布。

对我有用的是 Android Studio 中的重构 -> 迁移到 AndroidX 选项。 这似乎解决了我在尝试一次一个依赖项进行AndroidX迁移时可能错过的任何问题。 https://developer.android.com/jetpack/androidx/migrate

检查与 com.android.support 冲突的软件包并将其排除 从那个包。对我来说,我使用的是androidx软件包和FCM,其中 发生了冲突。所以,这为我修复了:

implementation ('com.google.firebase:firebase-core:16.0.4') {
exclude group: 'com.android.support'
}

添加以下插件

ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter

在 platform/android/gradle.properties 文件中添加这两行

android.useAndroidX=true
android.enableJetifier=true

这也是一个视频: https://youtu.be/0RaJlGipYHc

对于我的实例,我已经从 实现 'com.github.bumptech.glide:glide:4.0.0 自 实现 'com.github.bumptech.glide:glide:4.7.1'

相关内容

最新更新