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

更新Android Studio及构建工具后出现Dex合并错误求助

解决Android Studio 3.1 + Gradle 4.4 + 插件3.1下的Dex合并错误

我之前升级到这个版本组合时也碰到过一模一样的transformDexArchiveWithExternalLibsDexMergerForDebug错误,网上的通用方案试了一圈踩了不少坑,最后结合这个版本的特性才搞定,给你几个针对性的排查方向:

  • 先清缓存再重启,这是最容易被忽略的第一步
    升级后Android Studio的缓存经常会出问题,别直接就去改配置:

    1. 点击顶部菜单栏的File > Invalidate Caches / Restart,选择Invalidate and Restart
    2. 重启后手动删除项目根目录的.gradle文件夹、app模块下的build文件夹,再点击Sync Project with Gradle Files
      很多时候这个操作就能直接解决莫名其妙的dex合并问题。
  • 检查Multidex配置是否正确
    因为你用的compileSdkVersion是27,结合Gradle插件3.1,Multidex的配置要严格对应:

    1. 在app的build.gradle的defaultConfig里开启multidex:
      defaultConfig {
          compileSdkVersion 27
          minSdkVersion 你的最低版本
          targetSdkVersion 27
          // 新增这一行
          multiDexEnabled true
      }
      
    2. 添加Multidex依赖:
      dependencies {
          implementation 'com.android.support:multidex:1.0.3'
      }
      
    3. 如果你的项目有自定义Application类,要么让它继承MultiDexApplication,要么在attachBaseContext方法里手动初始化:
      @Override
      protected void attachBaseContext(Context base) {
          super.attachBaseContext(base);
          MultiDex.install(this);
      }
      
  • 排查依赖冲突,这是这个版本高发的问题
    Gradle 4.4的依赖解析逻辑有变化,很容易出现同一库多版本冲突:

    1. 在Terminal里执行依赖树命令:
      • Mac/Linux:./gradlew app:dependencies
      • Windows:gradlew.bat app:dependencies
        仔细看输出里的compile或implementation依赖,有没有同一类库出现不同版本的情况(比如support-v4同时出现27.0.2和27.1.1)
    2. 强制统一依赖版本,在app的build.gradle的android块下添加:
      configurations.all {
          resolutionStrategy {
              // 把所有support库强制统一到compileSdk对应的版本
              force 'com.android.support:appcompat-v7:27.1.1'
              force 'com.android.support:support-v4:27.1.1'
              force 'com.android.support:design:27.1.1'
              // 其他出现冲突的库也可以在这里强制指定版本
          }
      }
      

    另外还要注意有没有第三方库自带了重复的类(比如有些老的广告库会打包support类),可以暂时移除非必要的依赖,逐步排查出问题库。

  • 调整Gradle内存配置,避免内存不足导致合并失败
    Android Studio 3.1对内存的要求更高,很容易因为堆内存不够导致dex合并失败:

    1. 在app的build.gradle的android块下添加dexOptions:
      dexOptions {
          javaMaxHeapSize "4g" // 把堆内存调到4G,根据你的电脑配置可以适当调整
          preDexLibraries = false
      }
      
    2. 打开项目根目录的gradle.properties,确保内存配置足够:
      org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
      
  • 检查是否有不兼容的旧依赖
    有些比较老的第三方库(比如几年没更新的SDK)和Gradle 4.4 + 插件3.1兼容性很差,你可以尝试暂时注释掉一些非核心的依赖,重新构建,如果能成功,再逐个加回去找出问题依赖,然后考虑升级该库或者寻找替代方案。

如果还是不行,可以把build.gradle的完整内容贴出来,或者把错误日志的完整堆栈信息发出来,这样能更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:58:11