升级Flutter至2.5.0/2.5.3版本后network.g文件无法生成问题咨询
Flutter 2.5.x 版本升级后 network.g 文件生成失败解决方案
问题复现前提
- Flutter 版本升级至 2.5.0 / 2.5.3
- dio、retrofit、retrofit_generator、build_runner 均已升级至兼容的最新版本
- 执行
flutter pub run build_runner build后无对应 .g 文件生成,无明确报错或仅提示构建成功但无输出文件
可行解决方案
按优先级逐一尝试:
清理缓存并强制重建
按顺序执行以下命令:flutter clean rm -rf pubspec.lock flutter pub get flutter pub run build_runner build --delete-conflicting-outputs--delete-conflicting-outputs参数会自动覆盖旧的生成文件,避免隐性冲突导致的生成逻辑被跳过检查 retrofit 注解写法合规性
Flutter 2.5.x 对应 Dart 版本为 2.14.x,配套的高版本 retrofit_generator 对注解校验更严格:- 确认所有请求方法注解(
@GET/@POST等)都已指定请求路径,不可留空 - 确认请求抽象类前已添加
@RestApi()注解,不可省略括号 - 确认方法返回值写法为
Future<Response<你的实体类>>或Future<你的实体类>,无语法错误 - 所有自定义实体类已添加
@JsonSerializable()注解,对应实体类的 .g.dart 可正常生成
- 确认所有请求方法注解(
调整依赖版本到兼容范围
即使所有依赖都是最新版,也可能存在跨包兼容问题,Flutter 2.5.3 推荐的稳定兼容依赖版本参考:- dio: ^4.0.6
- retrofit: ^3.3.1
- retrofit_generator: ^4.2.0
- build_runner: ^2.4.6
- json_serializable: ^6.7.1
若最新版本适配异常,可回退到上述版本范围测试
检查 build.yaml 过滤规则
如果项目根目录存在 build.yaml 配置文件,确认没有配置过滤规则跳过了你存放 network 相关文件的目录,可暂时移除 build.yaml 后重新构建测试。
内容的提问来源于stack exchange,提问作者Pavan Kumar
相关产品推荐
相关产品推荐

