Flutter运行报':app:dexBuilderDebug'任务执行失败如何解决
Execution failed for task ':app:dexBuilderDebug' 排查与解决方案 这个错误是Flutter Android端构建时Dex字节码打包环节失败导致的,按以下优先级逐步排查即可解决:
先定位具体根因
控制台抛出的最后一行错误是通用提示,往上翻找Caused by:开头的具体错误行,绝大多数场景下这里会直接标明失败原因,比如方法数超限、类重复、版本不匹配,后续步骤可以直接对应处理。清理损坏的构建缓存
缓存损坏是最高发的偶发诱因,按顺序执行以下命令清理后重试:- 停掉当前运行的调试进程,项目根目录执行
flutter clean - 进入项目下的
android目录,Mac/Linux执行./gradlew clean,Windows执行gradlew clean - 回到项目根目录执行
flutter pub get,重新运行项目即可
- 停掉当前运行的调试进程,项目根目录执行
修复单Dex方法数超限(64K问题)
如果Caused by后提示Cannot fit requested classes in a single dex file,说明项目方法数超过了单Dex文件65536的上限:- 打开
android/app/build.gradle文件,在defaultConfig配置块中开启多Dex支持:
defaultConfig { // 保留原有minSdkVersion、targetSdkVersion等配置 multiDexEnabled true }- 如果项目配置的
minSdkVersion小于21,在同文件的dependencies块中添加多Dex依赖:
dependencies { implementation "androidx.multidex:multidex:2.0.1" }- 打开
解决依赖类重复冲突
如果Caused by后提示Duplicate class,说明存在重复引入的依赖包:- 进入
android目录,Mac/Linux执行./gradlew app:dependencies,Windows执行gradlew app:dependencies,打印完整依赖树 - 在依赖树中查找重复出现的库,在引入该库的依赖配置中用
exclude剔除重复模块,示例:
implementation('com.third.party:some-sdk:2.1.0') { exclude group: 'com.duplicate.group', module: 'duplicate-module' }- 如果项目
android/app/libs目录下存在本地jar包,检查是否和远程依赖的库重复,删除重复的本地jar即可
- 进入
校验版本匹配关系
版本不匹配也会触发Dex构建失败,逐一核对以下配置:- JDK版本和AGP(Android Gradle Plugin)版本适配:AGP 7.x对应JDK 11,AGP 8.x对应JDK 17,不要使用版本差过大的JDK
- Gradle版本和AGP版本适配,不匹配时同步调整两个版本即可
compileSdkVersion版本满足所有第三方依赖的要求,过低时升级到对应版本
统一编译字节码版本
如果错误提示类文件版本不兼容,在android/app/build.gradle的android配置块中统一Java/Kotlin编译目标版本:android { // 保留原有其他配置 compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } }
内容的提问来源于stack exchange,提问作者Batuhan yılmaz
相关产品推荐
相关产品推荐

