【问题标题】:flutter pub run build_runner build failed颤振发布运行 build_runner 构建失败
【发布时间】:2023-03-28 23:26:02
【问题描述】:

颤振版本:

flutter_macos_v1.9.1+hotfix.2-stable

在终端创建新项目:

flutter create myapp

打开vscode,编辑pubspec.yaml:

dependencies:
  json_annotation: ^3.0.0

dev_dependencies:
  build_runner: ^1.7.0
  json_serializable: ^3.2.2

在终端获取包:

flutter pub get

新建/lib/user.dart 并填写以下内容:

import 'package:json_annotation/json_annotation.dart';

part 'user.g.dart';

@JsonSerializable()
class User extends Object {
  @JsonKey(name: 'seed')
  String seed;

  @JsonKey(name: 'results')
  int results;

  @JsonKey(name: 'page')
  int page;

  @JsonKey(name: 'version')
  String version;

  User(
    this.seed,
    this.results,
    this.page,
    this.version,
  );

  factory User.fromJson(Map<String, dynamic> srcJson) =>
      _$UserFromJson(srcJson);

  Map<String, dynamic> toJson() => _$UserToJson(this);
}

在终端运行flutter pub run build_runner build

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

[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 10.4s

[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 698ms

[INFO] Checking for unexpected pre-existing outputs....
[INFO] Checking for unexpected pre-existing outputs. completed, took 2ms

[INFO] Running build...
[SEVERE] json_serializable:json_serializable on lib/user.dart:

Invalid argument(s): Path must be absolute : dart:core
[SEVERE] json_serializable:json_serializable on lib/main.dart:

Invalid argument(s): Path must be absolute : dart:core
[SEVERE] json_serializable:json_serializable on test/widget_test.dart:

Invalid argument(s): Path must be absolute : dart:core
[INFO] Running build completed, took 1.5s

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

[SEVERE] Failed after 1.6s

为什么没有成功?!

【问题讨论】:

  • 描述您尝试实现的目标,而不是仅发布代码,这将有助于其他人理解问题。不要试图绕过 stackoverflow 限制
  • Dart 2.0 有一些错误信息相同。 github.com/dart-lang/sdk/issues/33551
  • 他正试图自动化 Json 序列化,就像我一样,并且遇到了同样的错误。没有任何意义。这就是我们关注的内容:flutter.dev/docs/development/data-and-backend/…HELP
  • 您解决了吗?我有同样的问题。我想不通。
  • @bradbury9 自动 json 序列化/反序列化,查看我的其他评论

标签: flutter dart visual-studio-code


【解决方案1】:

试试这个。

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

【讨论】:

  • 对于网页版,只需附加网页...flutter pub get &amp;&amp; flutter pub run build_runner build --delete-conflicting-outputs web
【解决方案2】:

在 pubsec.yaml 中添加依赖,分析器:'0.39.14'

flutter clean
flutter pub cache repair
flutter pub run build_runner clean

然后运行,

flutter pub run build_runner build

【讨论】:

  • flutter pub run build_runner clean 之后添加flutter pub get,它对我有用!
【解决方案3】:

我尝试了很多解决方案,但错误并没有消失。 flutter packages pub run build_runner watch 命令以无穷无尽的日志运行。

我删除了 pubspec.lock 并运行 flutter pub get 并再次安装依赖项并运行上述命令。此错误消失后。

【讨论】:

  • 这确实帮助解决了我的问题。谢谢!
  • 这应该被接受!
【解决方案4】:

在尝试了上述所有建议的漫长过程之后,我得到了它与最新的 build_runner 和 json_serializable 版本一起使用: build_runner:^1.10.2 json_serializable: ^3.4.0 不确定最终是什么工作,但看起来我的问题之一是有点过时的 dart SDK,所以还有一件事需要关注

【讨论】:

  • 感谢您的回答! build_runner: ^1.10.2 需要 Dart 版本 2.-10.0+,因此,我将版本更改为 1.10.1,幸运的是它可以工作。
【解决方案5】:

请在flutter packages pub run build_runner build 命令之前为模型类创建默认的空构造函数

【讨论】:

    【解决方案6】:

    看起来 Analyzer 正在破坏它,降级到 analyzer: 0.38.2 为我解决了它。

    来源:https://github.com/dart-lang/sdk/issues/38499#issuecomment-533812652

    【讨论】:

    • 在使用 Moor 时遇到了问题,这个解决方案对我有用。
    【解决方案7】:

    我遇到了同样的问题,所以我只是先在课堂上保存了更改(在你的情况下为 User 课堂)。
    然后我只是重试使用:

    flutter pub run build_runner build
    

    【讨论】:

      【解决方案8】:

      我遇到了同样的问题。

      成功生成所有 *.g.dart 文件:

      build_runner 0.9.2

      json_serializable 0.5.8+1

      json_annotation 0.2.9+1

      【讨论】:

        【解决方案9】:

        在这种情况下可能不是这种情况,但是由于我的自动格式化程序删除了这一行,我遇到了类似的问题:

        part 'my_class.g.dart';
        

        一旦我添加了该行并再次运行该命令,它就可以正常工作了。

        【讨论】:

          【解决方案10】:

          2020/8/24 更新: 似乎在版本中破坏了 build_runner 或 json_serializable:

          Analyzer: 0.39.16 
          

          回到飞镖分析器版本:

          Analyzer: 0.39.14 
          

          为我修好了。 所以,0.39.16 中出现了问题。

          【讨论】:

          • 我也遇到了分析器问题,但我并不知道使用它。我也没有指定要使用的 versino。所以我认为这是一个缓存问题,然后运行 ​​flutter clean 和 flutter pub get 希望重置缓存。我还发现 intellij 自动提交了我的 .g.dart 文件,这会破坏运行程序。所以可能是错误的报告。谁知道呢。
          【解决方案11】:

          确保类名与生成的文件名相同。例如:

          part '用户.g.dart';

          用户 {

          }

          【讨论】:

            【解决方案12】:

            我有同样的错误。我只是安装了构建运行程序包 在 pubspec.yaml 文件中,例如 -

            dev_dependencies:

            build_runner:^1.3.1

            mobx_codegen: ^0.3.9

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-07-07
              • 2021-01-05
              • 2018-08-09
              • 2021-06-06
              • 2019-12-08
              • 1970-01-01
              相关资源
              最近更新 更多