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

使用Apache Commons库实现FTP图片上传时遇Unable to merge dex错误

解决Android Dex合并失败(Unable to merge dex)问题

我来帮你搞定这个Dex合并的坑!你遇到的Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'本质上是项目里出现了重复依赖库或者版本冲突,导致Dex打包时无法合并重复的类文件。结合你使用Apache Commons FTP库的场景,我给你几个实操性的解决方案:

1. 排查并移除重复依赖

首先要找出项目里重复引入的库,尤其是和Apache Commons相关的:

  • 打开Android Studio的Terminal,运行命令:
    # Mac/Linux
    ./gradlew app:dependencies
    # Windows
    gradlew app:dependencies
    
    这个命令会生成完整的依赖树,你要重点找有没有重复出现的commons-net或其他Apache Commons子库(比如commons-lang、commons-io),不同版本的同库很容易引发冲突。
  • 如果发现重复依赖,在引入Apache Commons库时用exclude去掉重复的模块,比如:
    implementation('commons-net:commons-net:3.6') {
        // 根据实际冲突的依赖调整group和module
        exclude group: 'org.apache.commons', module: 'commons-lang3'
    }
    

2. 启用MultiDex(应对方法数超限)

如果你的项目方法总数超过了64K的Dex限制,也会触发这个错误:

  • 在app模块的build.gradle里修改配置:
    android {
        defaultConfig {
            // 新增这一行
            multiDexEnabled true
        }
    }
    
    dependencies {
        // 添加MultiDex依赖(适配compileSdk 26的版本)
        implementation 'com.android.support:multidex:1.0.3'
    }
    
  • 如果你有自定义的Application类,让它继承MultiDexApplication;如果没有,就在AndroidManifest.xml的application标签里指定android:name="android.support.multidex.MultiDexApplication"。

3. 清理缓存并重建项目

很多时候缓存会导致莫名其妙的合并错误,先做这几步:

  • 点击Android Studio菜单栏的Build → Clean Project
  • 接着点击Build → Rebuild Project
  • 还可以手动删除项目根目录下的.gradle文件夹和app模块下的build文件夹,然后点击右上角的Sync Project with Gradle Files重新同步。

4. 检查版本兼容性

确保你的compileSdkVersion、targetSdkVersion和依赖库版本匹配:

  • 你用了compileSdkVersion 26,那么所有support相关的依赖版本最好也是26.x.x,避免版本不兼容引发的隐藏冲突。

如果按照上面的步骤还是没解决,建议你把build.gradle里的dependencies部分完整贴出来,这样能更精准地定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:57:50