错误:当使用健全的空安全性时,默认情况下库不能选择退出空安全性

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)。但是,如果库(包)想要听起来安全,则不允许这样做。

【讨论】:

以上是关于错误:当使用健全的空安全性时,默认情况下库不能选择退出空安全性的主要内容,如果未能解决你的问题,请参考以下文章

▩Dart-空安全(Null Safety)

Kotlin空安全 ① ( Kotlin 的空安全机制 | 变量可空性 | 默认变量不可赋空值 | 声明可空类型变量 )

Mule 4 - 消耗消息的空VM队列错误

健全性测试与回归测试?

当 @State var 基于 Picker 选择发生变化时,一个视图不会重新呈现

系统的健全性和完整性