You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中build_runner无法生成.g.dart文件的问题及疑问

为什么flutter clean→flutter pub get→dart run build_runner watch能解决问题
  • flutter clean的作用:
    这个命令会删除项目的build/目录、.dart_tool/目录,以及iOS和Android端的构建缓存。其中.dart_tool/存储了build_runner的缓存数据、依赖快照、之前构建的中间文件。如果这些缓存出现损坏、过期,或者和当前代码状态不匹配(比如之前构建中断残留了无效缓存、依赖版本更新后缓存未同步),就会导致build_runner异常——比如看似在运行但不生成文件、静默无输出。flutter clean直接清空这些缓存,相当于重置了项目的构建环境。

  • flutter pub get的作用:
    执行clean后,.dart_tool/里的依赖关联信息被清空,pub get会重新下载所有依赖包,生成匹配当前pubspec.yaml的依赖快照和配置。有时候之前的依赖缓存可能损坏,或者依赖之间的版本冲突没被正确处理,pub get能重新梳理依赖关系,修复潜在的依赖问题。

  • 三者组合的核心逻辑:
    先清空旧的构建和依赖缓存,再重新拉取依赖,最后启动build_runner,相当于给整个构建流程做了一次“硬重置”。你之前遇到的问题,大概率是缓存不一致或损坏导致build_runner无法正常识别注解、触发生成流程,重置后构建环境回到干净状态,build_runner就能按预期工作了。

内容的提问来源于stack exchange,提问作者user27088974

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 21:33:13