首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合并已存在的dex程序类型时出错: android.support.v4.os.ResultReceiver$MyResultReceiver

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

Stack Overflow用户
提问于 2018-05-17 16:51:38
回答 9查看 43.8K关注 0票数 48

合并目录值时出错

以下是依赖项。

代码语言:javascript
运行
复制
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'.执行失败:

  • 出错原因合并dex存档时出现com.android.builder.dexing.DexArchiveMergerException:错误: /app/build/intermediates/transforms/dexBuilder/debug/0.jar,程序类型已存在: android.support.v4.os.ResultReceiver$1
EN

回答 9

Stack Overflow用户

发布于 2018-05-23 00:16:37

这是因为你搞乱了依赖关系。您必须完全迁移到AndroidX依赖项,或者继续使用支持库依赖项。因此,不是

代码语言:javascript
运行
复制
implementation "android.arch.persistence.room:runtime:$room_lib"
annotationProcessor "android.arch.persistence.room:compiler:$room_lib"

使用

代码语言:javascript
运行
复制
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"

还要确保检查您的gradle.properties项目文件以包含

代码语言:javascript
运行
复制
android.useAndroidX=true
android.enableJetifier=true

Jetifier帮助依赖于旧支持包的库使用新的AndroidX包。

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

Jetifier Official Documentation

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

另外,我没有测试Anko是否可以处理AndroidX依赖,但是如果它不能工作,即使您的gradle.properties中的那些属性被启用,您也没有其他选择,只能退回到现在使用支持库。

票数 93
EN

Stack Overflow用户

发布于 2018-06-28 19:05:03

gradle.properties上添加以下行

代码语言:javascript
运行
复制
android.useAndroidX=true
android.enableJetifier=true

并更改您的聊天室对build.gradle的依赖(模型:应用程序)

代码语言:javascript
运行
复制
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"
票数 18
EN

Stack Overflow用户

发布于 2018-12-03 20:09:26

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

代码语言:javascript
运行
复制
android.useAndroidX=true
android.enableJetifier=true

希望这能有所帮助。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50387207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档