[英]Cannot run with sound null safety, because the following dependencies don't support null safety
[英]Cannot run with sound null safety because dependencies don't support null safety
我在 dart.dev 上遵循了“启用dart.dev
安全”,并将我的整个 Flutter 应用程序迁移到 null 安全。
现在,我正在尝试使用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.
URL 上的指南说我应该“在迁移包之前等待依赖项迁移” ,但我现在想默认使用不可空(NNBD)。
我怎样才能做到这一点?
首先,您应该通读指南以了解不健全的空安全。
如果您确定要以不健全的空安全性运行您的应用程序,您可以使用以下命令:
flutter run --no-sound-null-safety
文章中没有记录--no-sound-null-safety
选项,但是,我在过去几个月中没有遇到任何问题(尤其是在整个 Flutter 框架已迁移到空安全之后)。
编辑:文档现已更新以包含此内容。 请参阅测试或运行混合版本程序。
要在您选择的 IDE 中进行设置,您可以使用:
在这两种情况下,添加--no-sound-null-safety
。
如果使用 vscode。 在项目根目录中创建 .vscode/launch.json 并添加
"args": [
"--no-sound-null-safety"
]
完整代码:
{
// 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"
]
}
]
}
如果您使用的是VS Code
然后转到
文件=>首选项=>设置
搜索“Flutter 运行附加参数”
然后点击添加项目
现在输入--no-sound-null-safety
单击确定
如果您想使用--no-sound-null-safety
运行您的项目,那么现在您将这一行您的main.dart
文件添加到顶部(第一行)并带有注释。
// @dart=2.9
然后你项目运行--no-sound-null-safety
...
在终端执行以下命令,接受所有SDK包许可
颤振医生 --android-licenses
在终端中运行以下命令以检查是否有任何平台依赖项来完成设置:
扑医生
输出:
医生摘要(要查看所有详细信息,请运行 flutter doctor -v):
[√] Flutter (Channel dev, 2.2.0-10.1.pre, on Microsoft Windows [Version 10.0.19042.928], locale en-US)
[√] Android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.3)
[√] Chrome - 为网络开发
[√] Android Studio(4.1.0版本)
[√] VS Code(1.55.2 版本)
[√] 已连接设备(3 个可用)
• 未发现问题!
如果没有发现问题,则执行以下命令以构建具有不健全的空安全性的应用程序
颤动运行 --no-sound-null-safety
跑
dart pub outdated --mode=null-safety
在终端上,如果有开发依赖更新,则更新依赖
这可能会有所帮助。
问题发生是因为 Flutter 框架( version 2.2.0
和 Up)现在支持开箱即用的声音空安全,但 pub.dev 上有很多包和插件尚未迁移到空安全,因此无论何时运行都会引发错误build
或run
命令
要解决此问题,请在您的命令中添加标志--no-sound-null-safety
经验:
flutter build --no-sound-null-safety
假设,以防万一有人收到flutter_html: ^0.8.2
的错误。
将以下内容添加到您的pubspec.yaml文件中:
dependencies:
flutter_html: ^3.0.0-alpha.2
因此,证明在项目中使用任何依赖项都必须是包含空安全机制的最新版本。
因此,在使用"--no-sound-null-safety"
解决方案之前,请尝试搜索并使用您的依赖项的升级版本。
如果你的代码没有完全迁移到空安全,你就会遇到这个错误。 您可以运行“混合版本”代码:
打开终端 -> 使用此命令 -> flutter run -d chrome --no-sound-null-safety ,这应该可以工作
添加到@creativecreatorormaybenot
如果您正在构建没有声音安全性的 apk 文件或 aab 文件
只需在您的终端上执行此操作
flutter build apk --split-per-abi --no-sound-null-safety
或者
flutter build apk --release --no-sound-null-safety
将您的库版本更新到最新版本。 现在一天大部分图书馆都支持。
对于Visual Studio Code用户,将以下内容添加到文件settings.json :
"dart.flutterRunAdditionalArgs": [
"--no-sound-null-safety"
],
用这个对我有用
flutter pub upgrade --null-safety
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.