gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-28 23:55:50 24 4
gpt4 key购买 nike

合并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: Error while merging dex archives: /app/build/intermediates/transforms/dexBuilder/debug/0.jar, Program type already present: 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 打包类和 Artifact 。您还可以将其用作独立工具来单独迁移库。

Jetifier Official Documentation

The standalone Jetifier tool migrates support-library-dependent libraries to rely on the equivalent AndroidX packages instead. The tool lets you migrate an individual library directly, instead of using the Android gradle plugin bundled with Android Studio.

P。 S. 我没有测试 Anko 是否适用于 AndroidX 依赖项,但如果即使启用了 gradle.properties 中的那些属性也不能,你别无选择,只能回退到使用 Support图书馆和现在一样。

关于android - 合并 dex 程序类型已存在时出错 : android. support.v4.os.ResultReceiver$MyResultReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50387207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com