Flutter中如何生成.g文件

我在Flutter项目中使用了一些代码生成工具,比如json_serializable或built_value,但不知道如何正确生成.g文件。运行flutter pub run build_runner build命令后,有时会报错或者没有生成预期的文件。请问生成.g文件的具体步骤是什么?需要哪些依赖配置?如果遇到常见错误该如何解决?

2 回复

在Flutter中生成.g文件通常使用build_runner工具。步骤:

  1. pubspec.yaml中添加依赖:
dependencies:
  json_annotation: ^4.8.1
dev_dependencies:
  build_runner: ^2.3.3
  json_serializable: ^6.6.1
  1. 运行命令:
flutter packages pub run build_runner build

这会根据注解自动生成对应的.g.dart文件。

更多关于Flutter中如何生成.g文件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中,.g.dart 文件通常由代码生成工具(如 json_serializablefreezedbuilt_value)自动生成,用于序列化/反序列化或其他代码生成。以下是常见方法:

  1. 使用 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 build
      
      这会生成 user.g.dart 文件。
  2. 使用 freezed(不可变类):

    • 添加依赖后,在类上添加注解,运行相同命令。
  3. 其他工具:如 built_value,步骤类似,需配置对应依赖和注解。

注意

  • 首次运行或修改后需重新生成。
  • 若文件被锁定,使用 flutter pub run build_runner build --delete-conflicting-outputs 清除冲突。

确保模型类正确导入 part 和注解,然后执行命令即可自动生成 .g.dart 文件。

回到顶部