合并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 回答
在
gradle.properties
上添加以下行并在build.gradle(moudel:app)上更改您的房间依赖项
这是因为你搞砸了依赖关系 . 您必须完全迁移到AndroidX依赖项或继续使用支持库 . 因此,而不是
使用
另外一定要检查要包含的
gradle.properties
项目文件Jetifier帮助依赖旧支持包的库使用新的AndroidX .
P. S.我没有't test if Anko works with AndroidX dependencies, but if it doesn'即使你的
gradle.properties
中的那些属性已启用,你也没有其他选择,但现在回退到使用支持库 .我有同样的问题 .
不要在项目中混合依赖项样式(androidx和com.android.support) .
在您的代码中尝试替换
implementation "androidx.appcompat:appcompat:$support_lib"
同
implementation "com.android.support:appcompat-v7:$version_of_support_library"
您可以找到here的完整依赖项迁移列表 .
我应该使用旧样式依赖,因为我需要WorkManager并根据官方文档WorkManager目前没有AndroidX依赖项 .
这对我有用的是在Android Studio中重构 - >迁移到AndroidX选项 . 这似乎解决了我在尝试一次执行AndroidX迁移时依赖的任何事情 . https://developer.android.com/jetpack/androidx/migrate
将依赖项迁移到
androidx
依赖项 . 并在gradle.properties
中添加以下行(如果尚未创建,则在根文件夹中创建该文件) .希望这可以帮助 .
检查与com.android.support冲突的包,并将其从该包中排除 . 对我来说,我使用的是androidx软件包以及FCM,其中存在冲突 . 所以,这对我来说是固定的:
对于我的实例,我已经从实现'com.github.bumptech.glide:glide:4.0.0升级到实现'com.github.bumptech.glide:glide:4.7.1'
对我有用的是Android Studio中的Refactor - > Migrate to AndroidX选项 . 这似乎解决了我在尝试一次执行AndroidX迁移时依赖的任何事情 . https://developer.android.com/jetpack/androidx/migrate