flutter如何生成.g.dart文件

“我在Flutter项目中遇到了一个问题,不知道如何正确生成.g.dart文件。已经按照文档添加了build_runner依赖,但运行flutter pub run build_runner build命令时总是报错。请问生成.g.dart文件的具体步骤是什么?需要注意哪些配置?是否有常见的错误解决方案可以参考?”

2 回复

使用 build_runner 包生成 .g.dart 文件:

  1. pubspec.yaml 添加依赖:
dev_dependencies:
  build_runner: ^2.0.0
  1. 运行命令:
flutter packages pub run build_runner build

如需自动监听文件变化重新生成,使用:

flutter packages pub run build_runner watch

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


在Flutter中,.g.dart文件通常由代码生成工具(如 json_serializablefreezed 等)自动生成。以下是常见步骤:

  1. 添加依赖
    pubspec.yaml 中添加依赖(以 json_serializable 为例):

    dependencies:
      json_annotation: ^4.8.1
    
    dev_dependencies:
      build_runner: ^2.4.4
      json_serializable: ^6.7.0
    
  2. 创建模型类
    在模型中添加注解(例如 [@JsonSerializable](/user/JsonSerializable)):

    import 'package:json_annotation/json_annotation.dart';
    part 'user.g.dart'; // 声明生成的文件
    
    [@JsonSerializable](/user/JsonSerializable)()
    class User {
      final String name;
      final int age;
    
      User({required this.name, required this.age});
    
      // 生成 fromJson 和 toJson 方法
      factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
      Map<String, dynamic> toJson() => _$UserToJson(this);
    }
    
  3. 运行生成命令
    在终端执行以下命令生成 .g.dart 文件:

    flutter pub run build_runner build
    

    若需监听文件变化并自动重新生成,使用:

    flutter pub run build_runner watch
    
  4. 处理冲突
    如果生成失败,尝试添加 --delete-conflicting-outputs 参数:

    flutter pub run build_runner build --delete-conflicting-outputs
    

注意

  • 确保类中的 part '文件名.g.dart'; 路径正确。
  • 其他库(如 freezedauto_route)的生成步骤类似,具体参考其文档。
回到顶部