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

解决org.gradle.api.tasks.TaskExecutionException Dex合并调试任务失败问题

Fixing transformDexArchiveWithExternalLibsDexMergerForDebug Error in Your Android Project

Hey there, let’s tackle this frustrating dex merger error you’re stuck with. After going through your app/build.gradle file, I’ve spotted several potential issues that could be causing this, along with actionable fixes:

1. Resolve Firebase Version Inconsistencies

The biggest red flag here is mismatched Firebase library versions—Google requires all Firebase components in your project to use compatible versions to avoid conflicts. Your current setup mixes versions like 16.0.5, 17.0.0, and 16.2.1, which is likely contributing to the dex merger failure.

Here’s a set of compatible Firebase versions that work with your compileSdkVersion 28:

implementation 'com.google.firebase:firebase-core:16.0.9'
implementation 'com.google.firebase:firebase-messaging:17.6.0'
implementation 'com.google.firebase:firebase-crash:16.2.1' // Note: This library is deprecated; consider migrating to Firebase Crashlytics
implementation 'com.google.firebase:firebase-auth:16.0.9'

Note: If you’re open to modernizing, replace firebase-crash with firebase-crashlytics (since the former is no longer supported), and remove the Fabric plugin dependency as Crashlytics now integrates directly with Firebase.

2. Remove Duplicate Dependencies

Your dependencies block has redundant entries that can cause duplicate class conflicts:

  • Delete one instance of io.reactivex.rxjava2:rxandroid:2.0.1 (it appears twice)
  • Remove implementation 'junit:junit:4.12'—you only need testImplementation 'junit:junit:4.12' for unit tests

3. Clean Up Dex Configuration

Your custom afterEvaluate block modifying dex tasks is unnecessary when multiDexEnabled true is already set. Remove this entire section:

afterEvaluate {
    tasks.matching { it.name.startsWith('dex') }.each { dx ->
        if (dx.additionalParameters == null) {
            dx.additionalParameters = ['--multi-dex']
        } else {
            dx.additionalParameters += '--multi-dex'
        }
    }
}

The multiDexEnabled true flag already handles multi-dex setup for you, so this extra code can cause unexpected conflicts.

4. Standardize Architecture Component Versions

Your ext block defines roomVersion = '1.0.0' and archLifecycleVersion = '1.1.0', but you’re actually using 1.1.1 for both Room and Lifecycle components. Update the ext block to match the versions you’re using to avoid confusion:

ext {
    roomVersion = '1.1.1'
    archLifecycleVersion = '1.1.1'
}

Then reference these variables in your dependencies, e.g.:

implementation "android.arch.persistence.room:runtime:$roomVersion"
annotationProcessor "android.arch.persistence.room:compiler:$roomVersion"

5. Additional Troubleshooting Steps

If the above fixes don’t resolve the error, try these:

  • Run ./gradlew clean to clear build cache, then rebuild your project
  • Use ./gradlew app:dependencies to generate a dependency tree—look for duplicate classes or conflicting library versions (search for * Duplicate classes in the output)
  • Ensure all support libraries (like appcompat-v7, design) use the same version (you’re already on 28.0.0, which is good)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:57:55