Apple M2设备Flutter构建APK失败:checkDebugDuplicateClasses错误
解决Flutter构建APK时的
checkDebugDuplicateClasses错误(Kotlin版本冲突) 从构建日志可明确,问题根源是Kotlin标准库版本冲突:项目同时引入了kotlin-stdlib:1.9.0和旧版本的kotlin-stdlib-jdk7:1.7.10、kotlin-stdlib-jdk8:1.7.10,导致类重复。以下是针对性解决步骤:
1. 统一所有Kotlin依赖版本
强制项目内所有依赖使用同一版本的Kotlin标准库,消除版本差异冲突:
- 打开项目根目录下的
build.gradle文件(非app子目录下的) - 添加或修改配置:
buildscript { ext.kotlin_version = '1.9.0' // 与现有stdlib版本对齐 repositories { google() mavenCentral() } dependencies { // Gradle 8.1.1对应AGP 8.1.x,确保版本匹配 classpath "com.android.tools.build:gradle:8.1.0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() mavenCentral() } // 强制所有依赖使用指定Kotlin版本 configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } } }
2. 排查并修复第三方依赖冲突
部分Flutter插件可能引入旧版Kotlin依赖,需定位处理:
- 运行命令查看完整依赖树:
flutter pub deps --tree - 找到引入
kotlin-stdlib-jdk7或kotlin-stdlib-jdk8:1.7.10的第三方包 - 二选一处理:
- 优先升级该第三方包至最新稳定版
- 在
app/build.gradle中排除冲突依赖:dependencies { // 替换为实际冲突的插件 implementation('some_flutter_plugin:1.0.0') { exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7' exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8' } }
3. 清理构建缓存
缓存可能残留旧依赖,清理后重新构建:
- 执行命令:
flutter clean rm -rf android/.gradle flutter pub get - 重新尝试构建:
flutter build apk --debug
4. 验证插件兼容性
确认项目所有Flutter插件均支持当前Flutter 3.19.1版本,旧插件可能存在依赖兼容问题,建议将所有插件升级至最新稳定版。
内容的提问来源于stack exchange,提问作者ethicnology
相关产品推荐
相关产品推荐

