Abd*_*edy 42 dart flutter dart-null-safety
我尝试使用空安全,但它给了我这个错误:
这需要启用“不可为空”语言功能。尝试更新 pubspec.yaml 以将最小 SDK 约束设置为 2.10.0 或更高版本,并运行“pub get”。
我将 Dart SDK 约束从 更改2.7.0为2.10.0,但它仍然显示此错误。
另外,我升级了我的 Dart 和 Flutter SDK:
dart-sdk v2.10.2 是基于您的来源的最新版本。
颤动(通道稳定,1.22.3,...
cre*_*not 57
空安全性不再是一项试验 为飞镖2.12。现在很容易启用。
从第一个 Dart2.12版本开始,默认情况下类型将是不可为空的。所以你只需要改变你的 SDK 约束:
environment:
sdk: ">=2.12.0 <3.0.0"
Run Code Online (Sandbox Code Playgroud)
在 dart.dev 上了解有关“启用空安全”的更多信息。
jit*_*555 34
要启用空安全,
检查最新的 Dart 版本(应该是 Dart 2.12 或更高版本:)
dart --version
Run Code Online (Sandbox Code Playgroud)
更新dart版本,使用命令不满足以上几点。
dart pub upgrade --null-safety
dart pub get
Run Code Online (Sandbox Code Playgroud)
运行以下命令以了解您的项目中有哪些库需要升级到最新的空安全。
dart pub outdated --mode=null-safety
Run Code Online (Sandbox Code Playgroud)
在最新的栏显示当前版本,如果它在绿色是表示相关实施空安全功能,如果它再红的依赖业主的需求来实现这一点。
最后,运行 dart 迁移命令,该命令对现有项目(现有项目)执行空安全迁移
dart migrate
Run Code Online (Sandbox Code Playgroud)
如果您的包已准备好迁移,则该工具会生成如下一行:
通过访问查看迁移建议:
http://127.0.0.1:60278/Users/you/project/mypkg.console-simple?authToken=Xfz0jvpyeMI%3D
注意:即使在运行upgrade --null-safety命令后,您也会看到最新的列部分为红色,这意味着特定依赖项尚未支持空安全,因此您无法迁移项目。
详细阅读:https : //dart.dev/null-safety/migration-guide
关于空安全实施的好博客:https : //medium.com/flutterworld/flutter-null-safety-5d20012c2441
小智 9
在Flutter 2.0.0 Stable之后,您可以在应用程序根文件夹中运行:
dart migrate --apply-changes
Run Code Online (Sandbox Code Playgroud)
当您升级正在使用的 Flutter 版本时,可能会发生这种情况。
尝试将以下内容添加到analysis_options.yml
analyzer:
- enable-experiment:
- non-nullable
Run Code Online (Sandbox Code Playgroud)
然后,再次尝试清理和升级项目依赖项。
为此,您可以使用以下命令:
flutter clean
flutter packages pub upgrade
flutter pub run build_runner build
Run Code Online (Sandbox Code Playgroud)
最后,重新启动 IDE。
Ps 顺便请确保您使用的 sdk 与您的 Flutter 版本兼容
根据Dart 文档,我能够通过以下步骤在 Flutter 中启用空安全:
首先添加analysis_options.yaml:
analyzer:
enable-experiment:
- non-nullable
Run Code Online (Sandbox Code Playgroud)
然后转到开发频道并升级:
flutter channel dev
flutter upgrade
Run Code Online (Sandbox Code Playgroud)
更改sdk中pubspec.yaml
environment:
sdk: ">=2.11.0-213.0.dev <2.12.0"
Run Code Online (Sandbox Code Playgroud)
清理项目:
flutter clean
flutter pub get
Run Code Online (Sandbox Code Playgroud)
重新启动 IDE(在我的例子中是 VS Code)。
然后就一切正常了。
| 归档时间: |
|
| 查看次数: |
34596 次 |
| 最近记录: |