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

Sur*_*gch 9 dart flutter dart-null-safety

为空安全升级 Flutter 包时,我在运行时遇到此错误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
Run Code Online (Sandbox Code Playgroud)

答案就在那里,但我仍然困惑了一段时间,所以我在下面添加了我的答案。

Cop*_*oad 14

当您有一个混合版本的代码时也会出现这个问题,即代码没有完全迁移到听起来空安全。要运行应用程序:

  1. 使用IDE

    // @dart=2.9main.dart文件顶部添加并使用 Play 运行应用程序?图标。

    // @dart=2.9
    import 'package:flutter/material.dart';
    
    void main() {
      //...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用命令行

    flutter run --no-sound-null-safety
    
    Run Code Online (Sandbox Code Playgroud)

    或者具体一点(比如铬)

    flutter run -d chrome --no-sound-null-safety
    
    Run Code Online (Sandbox Code Playgroud)


Sur*_*gch 8

要解决您的问题,请从text_test.dart中删除以下行:

// @dart = 2.8
Run Code Online (Sandbox Code Playgroud)

此注释用于选择退出声音空安全(请参阅)。但是,如果库(包)想要保持空安全,则不允许这样做。