错误:当使用健全的空安全性时,默认情况下库不能选择退出空安全性
Posted
技术标签:
【中文标题】错误:当使用健全的空安全性时,默认情况下库不能选择退出空安全性【英文标题】:Error: A library can't opt out of null safety by default, when using sound null safety 【发布时间】:2021-03-09 22:30:10 【问题描述】:在升级 Flutter 包以实现 null 安全性时,我在运行 flutter test
时收到此错误:
Error: A library can't opt out of null safety by default, when using sound null safety.
// @dart = 2.8
^^^^^^^^^^^^^^
Failed to load "/Users/xxxxx/test/text_test.dart":
Compilation failed
答案就在那里,但我仍然困惑了一段时间,所以我在下面添加我的答案。
【问题讨论】:
【参考方案1】:当您有混合版本的代码时也会出现问题,即代码没有完全迁移到可靠的 null 安全性。运行应用程序:
使用 IDE
在您的main.dart
文件的顶部添加// @dart=2.9
,然后使用播放► 图标运行应用程序。
// @dart=2.9
import 'package:flutter/material.dart';
void main()
//...
使用命令行
flutter run --no-sound-null-safety
或者说具体一点(比如 chrome)
flutter run -d chrome --no-sound-null-safety
【讨论】:
【参考方案2】:要解决您的问题,请从 text_test.dart 中删除以下行:
// @dart = 2.8
此注释用于选择退出健全的 null 安全性(请参阅 this 和 this)。但是,如果库(包)想要听起来安全,则不允许这样做。
【讨论】:
以上是关于错误:当使用健全的空安全性时,默认情况下库不能选择退出空安全性的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin空安全 ① ( Kotlin 的空安全机制 | 变量可空性 | 默认变量不可赋空值 | 声明可空类型变量 )