You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android编译报错:transformDexArchiveWithExternalLibsDexMergerForDebug任务执行失败

解决Dex合并失败(Multiple dex files define)问题

从你提供的报错信息和Gradle配置来看,这个问题的核心是Google Play Services(GMS)相关库的版本冲突:你项目中直接引入的Firebase库版本是11.2.2,但OneSignal 3.7.1内部依赖了更高版本的GMS组件,导致同一个类com.google.android.gms.internal.zzcdn被多个不同版本的库重复定义,最终触发Dex合并失败。

下面是具体的解决方案:

1. 强制统一GMS/Firebase依赖版本

在你的模块build.gradle的dependencies块外部,添加版本强制配置,让所有依赖都使用你项目指定的11.2.2版本:

configurations.all {
    // 强制所有依赖使用和项目一致的GMS基础库版本
    resolutionStrategy.force 'com.google.android.gms:play-services-base:11.2.2'
    resolutionStrategy.force 'com.google.android.gms:play-services-basement:11.2.2'
    // Firebase核心库也需要统一版本
    resolutionStrategy.force 'com.google.firebase:firebase-core:11.2.2'
}

dependencies {
    // 你的原有依赖内容...
}

这个配置会让Gradle忽略依赖树中其他版本的这些库,强制使用你指定的版本,从根源消除重复类的冲突。

2. 清理重复的测试依赖

你的依赖中同时存在旧的androidTestCompile和新的androidTestImplementation引入的Espresso库,这可能带来额外的依赖冗余。建议删除旧的那一行:

// 删掉这行重复的配置
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

保留现有的androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'即可,Gradle 3.0+推荐使用implementation系列的依赖声明。

3. 清理缓存并重新构建

完成上述配置修改后,执行以下步骤确保生效:

  • 点击Android Studio顶部菜单的 Build -> Clean Project
  • 然后执行 Build -> Rebuild Project
  • 如果问题仍然存在,尝试 File -> Invalidate Caches / Restart,清除IDE缓存后再重新构建

额外说明

如果之后你计划升级Firebase/GMS版本,记得同步检查OneSignal的兼容版本(OneSignal官方文档会标注对应支持的GMS版本范围),避免再次出现版本冲突。

内容的提问来源于stack exchange,提问作者user3880554

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:05:42