Flutter:构建运行器引发预编译错误

Posted

技术标签:

【中文标题】Flutter:构建运行器引发预编译错误【英文标题】:Flutter: build runner throws a precompile error 【发布时间】:2021-09-04 06:44:55 【问题描述】:

我正在使用analyser 1.7.1。最新的build_runner build 命令产生如下错误。

flutter packages pub run build_runner build 预编译失败 build_runner:build_runner: ../../../sdk/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-1.7.1/lib/src/error/best_practices_verifier.dart:1998:14: 错误:必须返回非空值,因为返回类型 “字符串”不允许为空。字符串获取显示字符串

常用的flutter cleanpub cache repair 命令似乎无法解决问题,而且displayString 没有出现在我的代码库中的任何位置。

【问题讨论】:

【参考方案1】:

an issue 9 天前开放。这是关键部分:

目前的情况是:

package:analyzer 1.7.0 需要 package:meta ^1.4.0 package:analyzer 1.7.1 与 1.7.0 内容相同,但需要 package:meta ^1.3.0 Flutter 稳定引脚封装:元至 1.3.0

我不确定我们是如何遇到上述异常的 - 两个最新版本的分析器非常明确地说明了它们需要哪个版本的元数据。

@edlman 你的 pubspec 中有任何 dependency_overrides 吗?

你说得对,我使用的是依赖于元 1.4.0 的 3rd 方 pkg,所以我把它放到 dependency_overrides 来解决冲突。我没有想到它会导致这样的问题。 我已将覆盖更改为 1.3.0,它工作正常,还没有问题

所以我建议您检查一下您的 pubspec 中是否也存在 dependency_overrides。

【讨论】:

是的,我的依赖项覆盖中有1.4.0【参考方案2】:

analyser 1.7.1 有问题。

添加

dependency_overrides:
  analyzer: 1.7.0

pubspec.yaml

raina77ow 的回答中提供了更多详细信息。

【讨论】:

以上是关于Flutter:构建运行器引发预编译错误的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 Flutter build_runner 错误:无法预编译 build_runner:build_runner:

颤振自动路由构建运行器错误路由必须具有页面或重定向目标

在 Flutter 中构建 Streams 时出现编译时错误

在 ac-docker win10 中编译时出现构建错误,要求重建已编译的标头,因为自预编译标头以来文件已被修改

颤振构建运行器不起作用 - 调用了 getter 'uri' 为 null

TACO TFS iOS 构建错误“尚未为 node.js 版本 v6.10.1 预编译边缘模块”