我确实将我的颤振项目升级到了颤振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。似乎只有艰难的方法,那就是做空安全迁移((。谢谢