Flutter 3.3.0升级后Embedding异常,仅Debug构建报重复类错误
Flutter 3.3.0 Debug构建重复类错误解决方案(Flutter Embedding共享模块场景)
问题分析
升级Flutter到3.3.0后,Android Debug构建出现io.flutter.view.VsyncWaiter等类重复报错,核心原因是Debug构建变体同时引入了flutter_embedding_debug和flutter_embedding_release两个依赖,导致类冲突。Release构建正常是因为Release变体只会拉取Release版embedding依赖,而3.3.0版本的依赖处理逻辑中,Debug变体可能通过Flutter模块的间接依赖意外引入了Release版embedding。
解决方案
1. 强制排除Debug构建中的Release版embedding依赖
修改Android主项目的Gradle依赖配置,在debugImplementation中明确排除Release版的flutter_embedding:
debugImplementation('com.company.module:flutter_debug:+') { exclude group: 'io.flutter', module: 'flutter_embedding_release' } releaseImplementation 'com.company.module:flutter_release:+'
这样Debug构建时只会保留Debug版embedding依赖,避免类重复。
2. 检查Flutter模块的打包配置
进入共享的Flutter模块目录,确认其android/build.gradle中的变体依赖配置正确:
- Debug变体仅依赖
flutter_embedding_debug - Release变体仅依赖
flutter_embedding_release
确保没有在Debug配置中误引入Release相关依赖项。
3. 清理Gradle缓存
旧的依赖缓存可能残留冲突,执行以下命令彻底清理:
./gradlew cleanBuildCache ./gradlew clean
之后重新构建Debug版本。
4. 升级到Flutter 3.3.x后续补丁版本
Flutter 3.3.0可能存在embedding依赖处理的bug,官方后续发布的3.3.1及以上补丁版本大概率修复了该问题,尝试升级Flutter版本后验证:
flutter upgrade
内容的提问来源于stack exchange,提问作者dirkvranckaert
相关产品推荐
相关产品推荐

