首页 > 解决方案 > 从 3.0.1 => 4.0.1 升级后颤振斩波器构建失败,请帮助了解生成器输出

问题描述

我确实将我的颤振项目升级到了颤振2,作为升级的一部分,我确实将斩波器版本从 3.0.1 升级到了 4.0.1 nullsafety。之后,命令flutter packages pub run build_runner watch --delete-conflicting-outputs开始显示错误,这很难理解,因为我什至找不到错误消息指向的代码。这是错误输出片段:

[INFO] 16.1s elapsed, 35/51 actions completed.
[SEVERE] chopper_generator:chopper_generator on lib/data/api/my_api.dart:

Could not format because the source could not be parsed:

line 29, column 53 of .: Expected to find ')'.
   ╷
29 │ final $parts = <PartValue>[PartValue<String*>('name', name), PartValueFile<MultipartFile>('file', file)];
   │                                                     ^
   ╵
line 124, column 63 of .: Expected to find '}'.
    ╷
124 │ @override Future<Response<BuiltList<Places>>> getPlace({String* jwtToken}) { final $url = 'place';
    │                                                               ^
    ╵
line 55, column 55 of .: Expected to find ')'.

在第 29 行的源代码 lib/data/api/my_api.dart 中,没有显示消息,但有:在此处输入图像描述

我确实搜索了所有项目文件,但没有找到任何包含显示我的代码错误消息的文件。查看变量类型和名称,可以假设与 my_api.dart 代码中的错误匹配的行是:

  @multipart
  Future<Response<Users>> postMe({
    @Header('Authorization') String jwtToken,
    @Part("name") String name,
    @PartFile("file") MultipartFile file
  });  

但我无法弄清楚他们有什么问题?

- -更新 - -

找到答案https://www.gitmemory.com/issue/lejard-h/chopper/249/824860498 将其添加到 pubspec.yaml 后,我生成了我的 chopper api

environment:
  sdk: ">=2.12.0 <3.0.0"

dependency_overrides:
  analyzer: ^1.4.0
  hive_generator:
  quiver: ^3.0.1 

但这对我来说不是解决方案,因为我的项目不是 nullsafey,它使用的是 sdk>=2.9.0。似乎只有艰难的方法,那就是做空安全迁移((。谢谢

标签: flutterchopper

解决方案


推荐阅读