微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

添加 Hive 字段后 build_runner 的问题

如何解决添加 Hive 字段后 build_runner 的问题

我之前根据需要向 Hive 类型添加了额外的 Hive 字段。然后我删除了 .g.dart 文件重新生成了它,没有任何问题。

这次在添加新的 Hive 字段后出现此错误,我不明白为什么

[INFO] Generating build script...
[INFO] Generating build script completed,took 424ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed,took 73ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed,took 968ms

[INFO] Running build...
[INFO] Running build completed,took 21ms

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed,took 55ms

[SEVERE] hive_generator:hive_generator on lib/main.dart (cached):

This builder requires Dart inputs without Syntax errors.
However,package:Flutter_app_hive/main.dart (or an existing part) contains the following errors.
main.dart:33:3: Expected to find ';'.
main.dart:33:3: Expected an identifier.

Try fixing the errors and re-running the build.

[SEVERE] Failed after 92ms
pub finished with exit code 1

我尝试过 Flutter clean、Flutter pub outdated、pub get 等......但我一直收到这个错误

在我的 pubspec.yaml 中,在我添加了最新的 Hive 字段之前,这一切正常。

dependencies:
  Flutter:
    sdk: Flutter
  hive: ^2.0.2
  hive_Flutter: ^1.0.0
  path_provider: ^2.0.1
  curved_navigation_bar: ^0.3.7
  video_player: ^1.0.1
  font_awesome_Flutter: ^8.5.0
  badges: ^1.2.0
  cupertino_icons: ^1.0.2

dev_dependencies:
  Flutter_test:
    sdk: Flutter
  build_runner: ^2.0.1
  hive_generator: ^1.1.0

我发现了一篇关于降级分析器的旧帖子,但这会导致我使用的版本出现问题。

在 main.dart 中,第 33:3 行没有错误。它不应该有;按照建议。这在之前工作得很好,所以我不确定为什么现在会出现问题。我还在此处注释掉了代码,即使第 33:3 行没有任何内容,我仍然收到相同的错误消息

如果我删除添加的字段,我仍然会遇到相同的错误。如果我从备份中恢复 .g.dart 文件,我可以像以前一样运行应用程序。

对此的任何输入都将不胜感激,因为它非常令人困惑

更新:

所以我尝试删除模型文件并完全重新创建它,然后生成.g.dart。我明白了:

[INFO] Generating build script...
[INFO] Generating build script completed,took 485ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed,took 83ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed,took 1.1s

[INFO] Running build...
[INFO] Running build completed,took 23ms

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed,took 66ms

[INFO] Succeeded after 102ms with 0 outputs (0 actions)

我尝试保持文件原样,向以前的 Hive 类型添加一个新的 Hive 字段并添加一个 Hive 类型,但我没有生成任何内容

我没有更改现有的 Hive 字段,我知道这会导致问题。新的 Hive 字段和 Hive 类型被赋予了之前未使用过的下一个数字。

解决方法

所以我没有解决这个问题,但为了解决这个问题,我创建了一个新的 flutter 项目,复制了我的代码,除了任何生成的文件。然后我能够在添加新的 Hive 字段和 hive 类型后生成新的类型适配器。也许在我之前的项目中有些东西被破坏了。不知道为什么 flutter clean 不能解决这个问题。但也许这会帮助遇到同样问题的人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。