cre*_*not 97 dart flutter dart-null-safety
我遵循了“启用空安全”dart.dev并将我的整个 Flutter 应用程序迁移到空安全。
现在,我正在尝试使用 运行它flutter run,但是,由于以下错误,它无法启动:
Error: Cannot run with sound null safety, because the following dependencies
don't support null safety:
- package:cloud_firestore_web
- package:firebase_core_web
- package:shared_preferences
- package:url_launcher_web
- package:firebase_auth
- package:http
- package:provider
...
For solutions, see https://dart.dev/go/unsound-null-safety
Failed to compile application.
Run Code Online (Sandbox Code Playgroud)
URL 上的指南说我应该“在迁移包之前等待依赖项迁移”,但我现在想使用 NNBD。
我怎样才能做到这一点?
cre*_*not 134
首先,您应该通读指南以了解不健全的空安全。
如果您确定要以不健全的空安全性运行您的应用程序,您可以使用以下命令:
flutter run --no-sound-null-safety
Run Code Online (Sandbox Code Playgroud)
--no-sound-null-safety文章中没有记录该选项,但是,我在过去几个月中没有遇到任何问题(尤其是在整个 Flutter 框架已迁移到空安全之后)。
编辑:文档现已更新以包含此内容。请参阅测试或运行混合版本程序。
要在您选择的 IDE 中进行设置,您可以使用:
在这两种情况下,添加--no-sound-null-safety.
Cop*_*oad 55
如果您的代码未完全迁移到空安全,则会遇到此错误。您可以运行“混合版本”代码:
\n使用Android Studio IDE
\n复制: --no-sound-null-safety
在 Dart 文件中
\n添加// @dart=2.9到您的顶部main.dart并使用 Play \xe2\x96\xba 图标运行应用程序。
// @dart=2.9\nimport \'package:flutter/material.dart\';\n\nvoid main() {\n //...\n}\nRun Code Online (Sandbox Code Playgroud)\n使用命令行
\nflutter run --no-sound-null-safety\nRun Code Online (Sandbox Code Playgroud)\n或者具体来说(比如在Chrome中中)
\nflutter run -d chrome --no-sound-null-safety\nRun Code Online (Sandbox Code Playgroud)\nErf*_*tfi 25
如果使用 vscode。在项目根目录中创建 .vscode/launch.json 并添加
"args": [
"--no-sound-null-safety"
]
Run Code Online (Sandbox Code Playgroud)
完整代码:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "YOUR_PROJECT_NAME",
"program": "lib/main.dart",
"request": "launch",
"type": "dart",
"args": [
"--no-sound-null-safety"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
bal*_*u k 15
如果您使用的是VS Code
然后转到
文件=>首选项=>设置
搜索“Flutter 运行附加参数”
然后点击添加项目
现在输入 --no-sound-null-safety
单击确定
如果您使用VSCode并在单元测试中遇到它。
代码 => 首选项 => 设置 => 搜索设置,输入“flutter test” => Dart: Flutter Test Additional Args,添加项目 => 添加“ --no-sound-null-safety ”
小智 8
跑步
dart pub outdated --mode=null-safety
Run Code Online (Sandbox Code Playgroud)
在终端中,如果有开发依赖项更新,则更新依赖项。
这可能有帮助。
出现这个问题的原因是 Flutter 框架(版本 2.2.0 及更高版本)现在支持开箱即用的声音 null 安全,但pub.dev上有大量软件包和插件尚未迁移到 null 安全,因此这提高了每当您运行buildorrun命令时都会出错。
--no-sound-null-safety要解决此问题,请在命令中添加该标志。
例子:
flutter build [Target] --no-sound-null-safety
Run Code Online (Sandbox Code Playgroud)
目标参数:
对于安卓:
"apk" or "appbundle"
Run Code Online (Sandbox Code Playgroud)
对于 iOS:
"ipa"
Run Code Online (Sandbox Code Playgroud)
在终端中执行以下命令接受所有SDK包许可证
\nflutter doctor --android-licenses\nRun Code Online (Sandbox Code Playgroud)\n在终端中运行以下命令,检查是否有任何平台依赖项来完成设置:
\nflutter doctor\nRun Code Online (Sandbox Code Playgroud)\n输出:
\n医生摘要(要查看所有详细信息,请运行flutter doctor -v):
[\xe2\x88\x9a] Flutter(频道开发,2.2.0-10.1.pre,在 Microsoft Windows [版本 10.0.19042.928],区域设置 en-US)
\n[\xe2\x88\x9a] Android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.3)
\n[\xe2\x88\x9a] Chrome - 网络开发
\n[\xe2\x88\x9a] Android Studio(版本 4.1.0)
\n[\xe2\x88\x9a] Visual Studio 代码(版本 1.55.2)
\n[\xe2\x88\x9a] 连接的设备(3 个可用)
\n\xe2\x80\xa2 未发现问题!
\n如果没有发现问题,则执行以下命令来构建具有不健全的 null 安全性的应用程序
\nflutter run --no-sound-null-safety\nRun Code Online (Sandbox Code Playgroud)\n小智 5
如果你想运行你的项目,--no-sound-null-safety那么现在你将这一行你的main.dart文件添加到顶部(第一行)并带有注释..
// @dart=2.9
然后你项目运行--no-sound-null-safety...