为之前的 Flutter 项目关闭 Null Safety?

MRa*_*iaz 28 upgrade dart flutter

我想升级我的 flutter 以获得新功能,例如空安全,但我不希望我以前的项目影响它们。我只希望对我的新 flutter 项目进行新的更改,我想以类似于旧的方式运行我的旧项目。有什么办法吗?请指导我完成它。

谢谢你

Mig*_*ivo 39

在旧项目的pubspec.yaml文件中设置 SDK 约束就足够了。

例如,以下内容没有启用空安全:

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

您还可以在 Dart 文件的顶部指定禁用该文件的空检查。

// @dart=2.9
Run Code Online (Sandbox Code Playgroud)


jar*_*ler 28

以上回答并没有为我工作后我升级到Dart v2.12了上beta通道。所以我找到了这些选项:

您可以将此添加到任何 dart 文件的顶部以禁用空安全检查。

// @dart=2.9
Run Code Online (Sandbox Code Playgroud)

或类似于上面的答案,我必须包含 2.12 之前的版本以禁用空安全。您将在pubspec.yaml文件中编辑这一行。

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


Fai*_*wan 8

您的项目可能是使用 flutter old(版本低于 2.+)开发的。2.xx dart 版本的主要变化是启用空安全。目前,pub.dev 上的很多库已经升级为 null 安全功能。

但是您的旧项目可能有一些库仍未更新为空安全。因此,您的项目可能混合了两者。在这种情况下,@miguel 答案部分有效(定义sdk: ">=2.7.0 <3.0.0"约束)。要运行您的项目,您还需要取消零安全性。就像运行以下命令一样

flutter run --no-sound-null-safety

或者通过转到Run->Edit Configurations在配置中添加此命令。它将打开以下弹出窗口和突出显示的字符串,与在此输入图像描述

**推荐:**将您的项目更新为空安全。阅读有关空安全的更多信息


小智 5

您可以使用--no-sound-null-safety带有flutter run.

您也可以将其添加为launch.jsonVSCode 中的参数

"configurations": [
        {
            "name": "Flutter",
            "request": "launch",
            "type": "dart",
            "flutterMode": "debug",
            "args": [
                "--no-sound-null-safety"
            ],
        },
]
Run Code Online (Sandbox Code Playgroud)