Flutter中如何生成.g文件
我在Flutter项目中使用了一些代码生成工具,比如json_serializable或built_value,但不知道如何正确生成.g文件。运行flutter pub run build_runner build命令后,有时会报错或者没有生成预期的文件。请问生成.g文件的具体步骤是什么?需要哪些依赖配置?如果遇到常见错误该如何解决?
2 回复
在Flutter中生成.g文件通常使用build_runner工具。步骤:
- 在
pubspec.yaml中添加依赖:
dependencies:
json_annotation: ^4.8.1
dev_dependencies:
build_runner: ^2.3.3
json_serializable: ^6.6.1
- 运行命令:
flutter packages pub run build_runner build
这会根据注解自动生成对应的.g.dart文件。
更多关于Flutter中如何生成.g文件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中,.g.dart 文件通常由代码生成工具(如 json_serializable、freezed 或 built_value)自动生成,用于序列化/反序列化或其他代码生成。以下是常见方法:
-
使用
json_serializable(处理 JSON):- 添加依赖到
pubspec.yaml:dependencies: json_annotation: ^4.8.1 dev_dependencies: build_runner: ^2.4.6 json_serializable: ^6.7.1 - 创建模型类(例如
user.dart):import 'package:json_annotation/json_annotation.dart'; part 'user.g.dart'; @JsonSerializable() class User { final String name; final int age; User({required this.name, required this.age}); factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json); Map<String, dynamic> toJson() => _$UserToJson(this); } - 运行生成命令:
这会生成flutter pub run build_runner builduser.g.dart文件。
- 添加依赖到
-
使用
freezed(不可变类):- 添加依赖后,在类上添加注解,运行相同命令。
-
其他工具:如
built_value,步骤类似,需配置对应依赖和注解。
注意:
- 首次运行或修改后需重新生成。
- 若文件被锁定,使用
flutter pub run build_runner build --delete-conflicting-outputs清除冲突。
确保模型类正确导入 part 和注解,然后执行命令即可自动生成 .g.dart 文件。

