更新后build_runner无法运行,报_macros相关文件缺失错误
解决build_runner构建时找不到
_macros文件及analyzer类型错误的方案 锁定analyzer版本适配build_runner
最新版analyzer和build_runner ^2.4.12大概率存在兼容问题,build_runner 2.4.x系列对analyzer版本有明确范围限制。直接在pubspec.yaml里手动指定兼容版本,比如:dev_dependencies: analyzer: ^5.13.0 build_runner: ^2.4.12 # 其他生成器保持最新即可写完执行
dart pub get重新拉取依赖。彻底清理构建缓存及生成文件
常规清缓存没用的话,试试彻底清理:- 删除项目根目录的
.dart_tool文件夹 - 删掉所有生成器输出的文件(比如
*.g.dart、*.injectable.dart这类) - 执行
dart pub cache clean清理全局缓存 - 最后重新运行
dart run build_runner build --delete-conflicting-output
- 删除项目根目录的
检查生成器与build_runner的版本适配
有些最新版生成器可能已经依赖更高版本的build_runner或analyzer,你可以查下injectable_generator、retrofit_generator等的更新日志,找到和build_runner 2.4.12兼容的版本,然后在pubspec里指定对应版本号。切换build_runner版本
要是上面的方法都不行,要么升级build_runner到最新稳定版(记得先备份项目),要么降级到2.4.x里更稳定的版本比如2.4.8,再搭配对应的analyzer版本。
内容的提问来源于stack exchange,提问作者Camillo bucciarelli
相关产品推荐
相关产品推荐

