错误:这需要启用“不可为空”的实验

use*_*643 6 dart flutter

我正在玩非空类型,并将其添加到我的analysis_options.yaml

analyzer:
  enable-experiment:
    - non-nullable
Run Code Online (Sandbox Code Playgroud)

我有一个利用可空性扩展的代码生成器。可视代码适合我的代码。

现在,我尝试运行:

flutter packages pub run build_runner watch 
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

[SEVERE] Failed to snapshot build script .dart_tool/build/entrypoint/build.dart.
This is likely caused by a misconfigured builder definition.
[SEVERE] xyz.dart:95:7: Error: This requires the 'non-nullable' experiment to be enabled.Try enabling this experiment by adding it to the command line when compiling and running.
Run Code Online (Sandbox Code Playgroud)

我怎么--enable-experiment:non-nullableflutter packages pub run

如果我运行,也会发生相同的情况:

flutter build ios
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

  lib/main.dart:61:26: Error: This requires the 'non-nullable' experiment to be enabled.

    Try enabling this experiment by adding it to the command line when compiling and running.
Run Code Online (Sandbox Code Playgroud)

因此,同样的问题:我怎么能传递--enable-experiment:non-nullableflutter build

Gha*_*ghi 47

这个问题是我升级 Flutter 后出现的。
我通过再次清理和升级项目依赖项来解决它。
在项目根目录下运行以下命令:

flutter clean
flutter packages pub upgrade
flutter pub run build_runner build
Run Code Online (Sandbox Code Playgroud)

正如其他人所说,请确保您的 sdk 版本pubspec.yaml与您的 flutter sdk 版本兼容。

  • 另外,对于该语法,sdk 版本至少应为 sdk: ">=2.12.0 <3.0.0" (6认同)

Man*_*ath 10

为了零安全工作,

environment:
   sdk: ">=2.12.0 <3.0.0"
Run Code Online (Sandbox Code Playgroud)

至少应该是这个版本。然后运行flutter cleanflutter pub get它会工作。


Smr*_*ana 5

尝试

flutter clean
Run Code Online (Sandbox Code Playgroud)

这对我有用!


Tom*_* C. 0

对我来说,一个简单的修复方法是确保 Analysis_options.yaml 位于根文件夹中。就我而言,它位于 lib 文件夹中,直到我将文件移动到与 pubspec.yaml 相同的文件夹中,所有实验功能都不起作用。其他可能发生的事情包括不再需要实验性功能的更新,因此除了验证文件位置之外,更新到 flutter master 通道上的最新版本可能也很有用。但是,无法使用此选项运行命令行。