#flutter #chopper
Вопрос:
Я обновил свой проект flutter до flutter2, в рамках обновления я обновил версию chopper с 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 ')'.
В исходном коде lib/data/api/my_api.dart в строке 29 нет ничего похожего на показанное сообщение, но есть:
Я провел поиск во всех файлах проекта и не нашел ни одного файла, содержащего сообщения об ошибках кода, отображающие меня. Глядя на типы и имена переменных, можно предположить, что строки, соответствующие ошибкам в коде 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 Я создал свой API-интерфейс измельчителя после добавления этого в pubspec.yaml
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. Похоже, что есть только трудный путь, это сделать миграцию с нулевой безопасностью((. Спасибо