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

Android Things项目Dex合并失败求助:已开启MultiDex仍未解决

解决DexArchiveMergerException:开启Multidex后仍无法合并Dex的问题

你在开发Android Things + Firebase的运动传感器相机项目时碰到的这个Dex合并错误,我之前在整合Firebase和IoT相关项目时也遇到过,虽然开了multidexenabled true但没解决,大概率是配置不全或者依赖冲突导致的,给你几个实用的排查方向:

  • 先试最基础的清理重建
    很多时候编译缓存会搞出奇怪的问题,先执行这两步:

    1. 点击Android Studio菜单栏的Build -> Clean Project
    2. 清理完成后选择Build -> Rebuild Project
      不少类似的Dex合并问题,光这一步就能解决。
  • 重点检查依赖冲突
    你的项目同时用到Firebase和Android Things,依赖版本不兼容是重灾区:

    • 确保所有Firebase组件的版本完全一致,比如firebase-messaging、firebase-analytics这些,版本号要统一,不能有的用21.x有的用22.x
    • 排查是否同时混用了Android Support库和AndroidX库,现在Firebase默认依赖AndroidX,如果你的项目里还残留旧的Support库,很容易出现类重复的问题
    • 用./gradlew mobile:dependencies命令生成完整的依赖树,搜索有没有重复出现的库(比如两个不同版本的com.android.support:support-core-utils)
  • 补全Multidex的完整配置
    只在Gradle里加multidexenabled true是不够的,还要确保Application层的配置:

    • 如果你的项目有自定义Application类,让它直接继承MultiDexApplication
    • 如果不能修改Application的父类,就在attachBaseContext方法里手动初始化Multidex:
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
      
  • 升级Gradle相关工具版本
    旧版本的Android Gradle插件可能存在Dex合并的bug,试试升级:

    • 在项目根目录的build.gradle里,把com.android.tools.build:gradle升级到稳定的新版本(比如7.4.x系列)
    • 把app模块里的compileSdkVersion和targetSdkVersion同步升级到对应兼容的版本(比如33)
  • 手动排除重复依赖
    如果依赖树里发现某个库被多个依赖重复引入,可以在对应的依赖声明里用exclude去掉重复部分,比如:

    implementation('com.google.firebase:firebase-messaging:23.0.0') {
        exclude group: 'androidx.core', module: 'core'
    }
    

建议先从清理重建开始试,然后重点排查依赖冲突,这两个是这类问题最常见的诱因。如果还是解决不了,可以把你app模块build.gradle里的依赖部分贴出来,能更精准定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:27:55