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

Android无法合并dex:多dex文件定义Lorg/apache/commons/lang3求助

Fixing "Multiple dex files define Lorg/apache/commons/lang3" in Android Projects

Hey there, let's get this annoying dex merge issue sorted out quickly! The error you're seeing is straightforward: your project has duplicate copies of the org.apache.commons.lang3 library coming from different dependencies, which breaks the Dex merging process (that's exactly what that transformDexArchiveWithExternalLibsDexMergerForxxxDebug task failure is yelling about).

Here's a step-by-step fix:

1. Find where the duplicate dependency is coming from

First, you need to identify which libraries are pulling in commons-lang3 multiple times. Run this Gradle command in your project root:

# For macOS/Linux
./gradlew your-module-name:dependencies

# For Windows
gradlew.bat your-module-name:dependencies

Replace your-module-name with the actual module name (like app if you're using the default setup). Search the output for commons-lang3—you'll see entries showing which dependencies are including it (e.g., com.example.somelib:1.2.3 might have it as a transitive dependency).

2. Exclude the duplicate dependency

Once you've spotted the duplicates, pick one of the dependencies and exclude the conflicting commons-lang3 from it. For example, if com.example.somelib:1.2.3 is bringing in an extra copy, update your module-level build.gradle like this:

implementation('com.example.somelib:1.2.3') {
    exclude group: 'org.apache.commons', module: 'commons-lang3'
}

Pro tip: Stick with the newer version of commons-lang3 if the duplicates are different versions—this reduces the chance of compatibility issues.

3. Force a single version (backup plan)

If excluding duplicates feels messy, you can force all dependencies to use the same version of commons-lang3. Add this to your root-level build.gradle:

allprojects {
    configurations.all {
        resolutionStrategy.force 'org.apache.commons:commons-lang3:3.12.0' // Use your preferred version here
    }
}

This ensures every dependency uses the version you specify, eliminating version conflicts entirely.

4. Clean and rebuild

Finally, clear out old build artifacts to make sure nothing lingers:

./gradlew clean

Then recompile your project—this should resolve the dex merge error.

One quick check: Make sure you aren't directly adding commons-lang3 as a dependency and having it come in via a third-party library. If that's the case, just remove your direct dependency and rely on the transitive one (or vice versa, whichever makes sense).

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:54:39