我尝试使用null safety,但它给了我这个错误:这需要启用“不可空”语言功能。请尝试更新pubspec.yaml以将最小SDK约束设置为2.10.0或更高版本,并运行“pub get”。我将我的Dart SDK约束从2.7.0更改为2.10.0,但它仍然显示此错误。
2.7.0
2.10.0
另外,我升级了我的Dart和Flutter SDK:dart-sdk v2.10.2是基于您的源代码的最新版本。Flutter(通道稳定,1.22.3,...
35g0bw711#
当您升级正在使用的Flutter版本时可能会发生这种情况。尝试将以下内容添加到analysis_options.yml
analyzer: - enable-experiment: - non-nullable
然后,再次尝试清理和升级项目依赖项。为此,您可以使用以下命令:
flutter clean flutter packages pub upgrade flutter pub run build_runner build
最后,重新启动IDE。顺便说一下,确保你使用的sdk与你的Flutter版本兼容
7kqas0il2#
根据Dart文档,我能够通过以下步骤在Flutter中启用空安全性:首先添加analysis_options.yaml:
analysis_options.yaml
analyzer: enable-experiment: - non-nullable
然后转到dev频道并升级:
flutter channel dev flutter upgrade
在pubspec.yaml中更改sdk
pubspec.yaml
environment: sdk: ">=2.11.0-213.0.dev <2.12.0"
清理项目:
flutter clean flutter pub get
重新启动IDE(在我的例子中是VS Code)。然后它工作正常。
pieyvz9o3#
1.在pubspec.yaml文件中将较低的Dart SDK约束设置为2.12。
2.12
environment: sdk: ">=2.12.0 <3.0.0"
1.检查您的应用程序的所有包是否已迁移到null安全。
dart pub outdated --mode=null-safety
1.如果它们被迁移,则将所有包更新为其空安全变量。
dart pub upgrade --null-safety dart pub get
1.开始迁移过程。
dart migrate
如果您对这些更改感到满意,请使用以下命令应用它们:
dart migrate --apply-changes
g9icjywg4#
我已经做了以上所有的工作,但是由于某种原因,分析器仍然给出了一个关于启用null安全的错误。对我来说,解决这个问题的方法是运行pub upgrade而不是pub get。我甚至不打算去找原因,我只是要回去工作!
0sgqnhkj5#
我确认即使在2022年它仍然工作这样做...环境:SDK:“〉=2.12.0〈3.0.0”
xzv2uavs6#
从 * Dart 2.12开始,空值安全 * 不再是一个实验**。现在很容易启用。
从第一个Dart 2.12版本开始,types将默认为不可空。所以你只需要修改你的SDK约束:
在dart.dev上了解有关“启用空安全”的更多信息。
sigwle7e7#
要启用空值安全,1.检查最新的Dart版本(应该是Dart 2.12或更高版本:)
dart --version
1.更新dart版本,使用命令不满足上述点。
1.运行下面的命令来了解项目中哪些库需要升级到最新的null safety。
latest列显示当前版本,如果它是绿色的,这意味着依赖实现了空安全功能,如果它是红色的,那么依赖所有者需要实现它。
1.最后,运行dart migration命令,对现有项目(Existing project)执行空安全迁移
1.如果您的包已准备好迁移,则该工具将生成如下所示的行:通过访问以下网站查看迁移建议:http://127.0.0.1:60278/Users/you/project/mypkg.console-simple?authToken=Xfz0jvpyeMI%3D
**注意:**即使运行upgrade --null-safety命令,您也会看到最新列部分为红色,这意味着某个依赖尚未支持null安全,因此您无法迁移该项目。
upgrade --null-safety
详情请参阅:https://dart.dev/null-safety/migration-guide
lsmepo6l8#
Flutter 2.0.0Stable之后,可以在approot文件夹下运行:
8条答案
按热度按时间35g0bw711#
当您升级正在使用的Flutter版本时可能会发生这种情况。
尝试将以下内容添加到analysis_options.yml
然后,再次尝试清理和升级项目依赖项。
为此,您可以使用以下命令:
最后,重新启动IDE。
顺便说一下,确保你使用的sdk与你的Flutter版本兼容
7kqas0il2#
根据Dart文档,我能够通过以下步骤在Flutter中启用空安全性:
首先添加
analysis_options.yaml
:然后转到dev频道并升级:
在
pubspec.yaml
中更改sdk清理项目:
重新启动IDE(在我的例子中是VS Code)。
然后它工作正常。
pieyvz9o3#
1.在
pubspec.yaml
文件中将较低的Dart SDK约束设置为2.12
。1.检查您的应用程序的所有包是否已迁移到null安全。
1.如果它们被迁移,则将所有包更新为其空安全变量。
1.开始迁移过程。
如果您对这些更改感到满意,请使用以下命令应用它们:
g9icjywg4#
我已经做了以上所有的工作,但是由于某种原因,分析器仍然给出了一个关于启用null安全的错误。对我来说,解决这个问题的方法是运行pub upgrade而不是pub get。我甚至不打算去找原因,我只是要回去工作!
0sgqnhkj5#
我确认即使在2022年它仍然工作这样做...
环境:SDK:“〉=2.12.0〈3.0.0”
xzv2uavs6#
从 * Dart
2.12
开始,空值安全 * 不再是一个实验**。现在很容易启用。开启空值安全
从第一个Dart
2.12
版本开始,types将默认为不可空。所以你只需要修改你的SDK约束:在dart.dev上了解有关“启用空安全”的更多信息。
sigwle7e7#
要启用空值安全,
1.检查最新的Dart版本(应该是Dart 2.12或更高版本:)
1.更新dart版本,使用命令不满足上述点。
1.运行下面的命令来了解项目中哪些库需要升级到最新的null safety。
latest列显示当前版本,如果它是绿色的,这意味着依赖实现了空安全功能,如果它是红色的,那么依赖所有者需要实现它。
1.最后,运行dart migration命令,对现有项目(Existing project)执行空安全迁移
1.如果您的包已准备好迁移,则该工具将生成如下所示的行:
通过访问以下网站查看迁移建议:
http://127.0.0.1:60278/Users/you/project/mypkg.console-simple?authToken=Xfz0jvpyeMI%3D
**注意:**即使运行
upgrade --null-safety
命令,您也会看到最新列部分为红色,这意味着某个依赖尚未支持null安全,因此您无法迁移该项目。详情请参阅:https://dart.dev/null-safety/migration-guide
lsmepo6l8#
Flutter 2.0.0Stable之后,可以在approot文件夹下运行: