[英]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.