首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复颤振build_runner错误:未能预编译build_runner:build_runner:

如何修复颤振build_runner错误:未能预编译build_runner:build_runner:
EN

Stack Overflow用户
提问于 2021-05-13 12:08:04
回答 1查看 550关注 0票数 2

我正在处理两个颤振项目,其中一个已经迁移到空安全,并使用了Flutter 2.0.5。导致问题的第二个项目还没有迁移到空安全,而是使用了Flutter 1.22.6。切换项目是通过重命名颤振SDK文件夹完成的。

现在的问题是,build_runner只适用于颤振2.0.5。当从flutter pub run build_runner build Flutter 1.22.6项目内部调用时,它将失败,其中包含以下错误消息:

代码语言:javascript
复制
Failed to precompile build_runner:build_runner:
../../../Flutter%20SDK/flutter/.pub-cache/hosted/pub.dartlang.org/http_multi_server-2.1.0/lib/src/multi_headers.dart:97:8: Error: The method 'MultiHeaders.add' has fewer named arguments than those of overridden method 'HttpHeaders.add'.
  void add(String name, Object value) {
       ^
org-dartlang-sdk:///sdk/lib/_http/http.dart:698:8: Context: This is the overridden method ('add').
  void add(String name, Object value,
       ^
../../../Flutter%20SDK/flutter/.pub-cache/hosted/pub.dartlang.org/http_multi_server-2.1.0/lib/src/multi_headers.dart:129:8: Error: The method 'MultiHeaders.set' has fewer named arguments than those of overridden method 'HttpHeaders.set'.
  void set(String name, Object value) {
       ^
org-dartlang-sdk:///sdk/lib/_http/http.dart:707:8: Context: This is the overridden method ('set').
  void set(String name, Object value,
       ^
../../../Flutter%20SDK/flutter/.pub-cache/hosted/pub.dartlang.org/build_runner-1.11.0/lib/src/entrypoint/runner.dart:23:31: Error: No named parameter with the name 'usageLineLength'.
  final argParser = ArgParser(usageLineLength: lineLength);
                              ^^^^^^^^^^^^^^^
../../../Flutter%20SDK/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.4.4/lib/src/arg_parser.dart:43:11: Context: Found this candidate, but the arguments don't match.
  factory ArgParser({bool allowTrailingOptions: true}) =>
          ^
../../../Flutter%20SDK/flutter/.pub-cache/hosted/pub.dartlang.org/build_runner-1.11.0/bin/src/commands/clean.dart:18:31: Error: No named parameter with the name 'usageLineLength'.
  final argParser = ArgParser(usageLineLength: lineLength);
                              ^^^^^^^^^^^^^^^
../../../Flutter%20SDK/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.4.4/lib/src/arg_parser.dart:43:11: Context: Found this candidate, but the arguments don't match.
  factory ArgParser({bool allowTrailingOptions: true}) =>
          ^
../../../Flutter%20SDK/flutter/.pub-cache/hosted/pub.dartlang.org/build_runner-1.11.0/bin/src/commands/generate_build_script.dart:18:31: Error: No named parameter with the name 'usageLineLength'.
  final argParser = ArgParser(usageLineLength: lineLength);
                              ^^^^^^^^^^^^^^^
../../../Flutter%20SDK/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.4.4/lib/src/arg_parser.dart:43:11: Context: Found this candidate, but the arguments don't match.
  factory ArgParser({bool allowTrailingOptions: true}) =>

奇怪的是,所有这些错误都在项目之外。调用flutter cleanflutter pub cache repair没有任何影响。所以问题是,要让build_runner运行(现在已经过时的) Flutter version 1.22.6,需要做些什么?非常欢迎您的建议,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-06 21:30:41

由于所需的第三方库阻止迁移到空安全,唯一的解决方案是通过从生成的json切换到手工编写的build_runner来消除json。

与其说是一种解决方案,不如说是一种解决办法,但它已经足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67518970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档