Hive .g.dart 文件未生成

问题描述 投票:0回答:6

我想使用Hive作为本地数据库进行存储。 这是我的模特课

    import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
part 'addForm.g.dart';

@HiveType(typeId: 0)
class AddForm extends HiveObject{

  @HiveField(0)
  String title;

  @HiveField(1)
  String description;

  @HiveField(2)
  int fieldNumber;

  @HiveField(3)
  String question;

  @HiveField(4)
  Widget fieldType;

  @HiveField(5)
  bool required;

}

我使用此命令:“flutter packages pub run build_runner build”来生成 .g.dart 文件,但它没有生成。

我尝试了一切,但没有任何效果,请帮忙!

flutter local-storage flutter-hive
6个回答
1
投票

这个答案是针对犯过同样错误的人的。

因为我也面临同样的问题。就我而言,我的

part '..';
与类名相同,就像上面的代码一样。这是行不通的,您应该将该部分命名为您的
file_name.dart
的名称,而不是您班级中的
ClassName

例如。

如果您的文件名是

add_form.dart
那么您的部分是
part 'add_form.g.dart';

另外,hive 不支持 widget。


0
投票

HiveField
只能具有
Hive
直接支持的类型或者是
HiveType
Widget
都不是,这就是为什么除非你自己编写了相应的适配器,否则你无法保存小部件。

您的终端也应该将其显示为错误。


0
投票

尝试这个,没有(typeId:0).. @HiveType() MyNote 类扩展了 HiveObject {}


0
投票

一个简单的解决方案是首先清理构建缓存并获取依赖项。

清理缓存:

flutter clean

安装构建缓存:

flutter pub get

然后运行命令:

flutter pub run build_runner build

0
投票

也遇到过这个问题。我通过添加 hive_generator 打包并再次运行构建运行程序来解决它。


-1
投票

我面临同样的问题,我重新运行相同的命令并生成文件:)

© www.soinside.com 2019 - 2024. All rights reserved.