Flutter执行build_runner命令生成重复文件与文件夹问题求助
Flutter build_runner生成重复文件问题解决方案
- 首先修正执行命令的拼写错误,你当前使用的
--delete-conflictbining-outputs参数存在拼写错误,正确参数为--delete-conflicting-outputs,拼写错误会导致参数失效,build_runner无法自动覆盖冲突文件,系统会自动生成带数字后缀的副本避免覆盖,完整正确命令如下:flutter packages pub run build_runner build --delete-conflicting-outputs - 手动删除项目中所有带数字后缀的重复文件、文件夹,包括
.dart_tool 2这类异常副本,再删除根目录下的原生.dart_tool文件夹、pubspec.lock文件,执行flutter pub get重新拉取依赖。 - 检查项目根目录下是否存在
build.yaml配置文件,确认配置的生成文件输出路径没有重叠,如果项目包含多个子 pub 模块,需要确认不同模块的build输出路径不存在冲突。 - 升级相关依赖版本,你当前使用的
build_runner: ^2.1.2属于2.x早期版本,存在偶发的文件锁异常导致重复生成文件的问题,建议将build_runner升级到2.4.0以上版本,同步升级built_value_generator到和built_value匹配的最新兼容版本。 - 如果你在macOS系统下开发,确认项目文件夹是否在iCloud同步目录内,iCloud的文件同步锁会和build_runner的写入操作冲突,触发系统自动生成副本,将项目迁移到本地非同步目录即可解决。
- 处理Xcode卡死、flutter clean卡住问题:删除所有重复文件后,执行以下命令重置iOS构建缓存:
rm -rf ios/Pods ios/Podfile.lock cd ios && pod install cd .. && flutter clean
内容的提问来源于stack exchange,提问作者Lukas Luke Stateczny
相关产品推荐
相关产品推荐

