写点什么

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occur

作者:lichong951
  • 2025-12-05
    北京
  • 本文字数:1113 字

    阅读完需:约 4 分钟

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occur

这个错误:

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable

不是 multidex 问题,而是 AGP 8.x 默认开启了“检查重复类”,你的 APK 里出现了 完全相同的类(全限定名一致)来自不同 JAR/AAR,导致构建失败。


✅ 快速定位重复类

方法 1:Gradle 自带报告(推荐)

./gradlew app:assembleDebug --info \  | grep -i "duplicate"
复制代码

./gradlew app:assembleDebug --stacktrace
复制代码

Build Output 面板里会打印出类似:

Duplicate class kotlin.collections.ArraysKt found in modules  kotlin-stdlib-1.9.10 (org.jetbrains.kotlin:kotlin-stdlib:1.9.10)  kotlin-stdlib-jdk8-1.9.10 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10)
复制代码

方法 2:用 Gradle 任务

./gradlew app:checkDebugDuplicateClasses
复制代码

失败时会列出所有冲突坐标。


✅ 常见场景 & 解决清单



✅ 一键“先跑起来”的应急方案(不推荐长期)

app/build.gradle忽略重复类(仅本地调试,上架前必须根治):

android {    packagingOptions {        pickFirsts += [            'META-INF/DEPENDENCIES',            'META-INF/LICENSE',            'META-INF/LICENSE.txt',            'META-INF/NOTICE',            'META-INF/NOTICE.txt'        ]        // 把具体重复类也 pickFirst(按日志里名字写)        pickFirsts += 'kotlin/annotations/JvmPlatformAnnotationsKt.class'    }}
复制代码

⚠️ 这只能让构建通过,运行时仍可能 NoSuchMethodErrorClassCastException务必后续排除真正的重复依赖


✅ 根治模板(示例)

假设日志提示:

Duplicate class okhttp3.internal.Util  in modules okhttp3-3.14.9 and okhttp-2.7.5
复制代码

做法:

configurations.all {    exclude group: 'com.squareup.okhttp', module: 'okhttp'   // 老版本}// 只保留 3.ximplementation 'com.squareup.okhttp3:okhttp:4.12.0'
复制代码



✅ 步骤小结

  1. ./gradlew app:checkDebugDuplicateClasses 找出重复类。

  2. 根据坐标 exclude升级/统一 到同一个版本。

  3. 确认无重复后再 ./gradlew app:assembleDebug

  4. 别长期用 pickFirsts 当“万能膏药”,否则线上随时爆炸。

按以上操作,就能把 CheckDuplicatesRunnable 错误彻底消灭。祝你编译一路绿灯!


Android 推荐阅读

Cannot fit requested classes in a single dex file (# methods: 93047 > 65536) 【Android】开发者模式启用

开发工具链推荐

API开发工具postman、国内xxapi和SmartApi的性能对比

健康杂谈

【论健康】怎么才算健康(健康的本质) 【论健康】健康的不可能三角

用户头像

lichong951

关注

人生三定|SmartApi|大前端++ 2018-12-28 加入

开创前端晋升路线:【大前端++】技术路线; SmartApi 开发工具软件 著有《修心力》(正在出版中)、《健康的本质》(正在写作中)。。。其他杂谈文章等等;

评论

发布
暂无评论
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occur_an'droid_lichong951_InfoQ写作社区