Error: A library can't opt out of null safety by default, when using sound null safety

20.5k views Asked by At

When upgrading a Flutter package for null safety I got this error when running 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

The answer was right there but I was still confused for a while, so I'm adding my answer below.

2

There are 2 answers

1
CopsOnRoad On BEST ANSWER

The problem also occurs when you have a mixed-version code i.e. the code is not fully migrated to sound null safety. To run the app:

  1. Using IDE

    Add // @dart=2.9 at the top in your main.dart file and run the app using the Play ► icon.

    // @dart=2.9
    import 'package:flutter/material.dart';
    
    void main() {
      //...
    }
    
  2. Using command line

    flutter run --no-sound-null-safety
    

    or to be specific (say in chrome)

    flutter run -d chrome --no-sound-null-safety
    
0
Suragch On

To solve your problem, remove the following line from text_test.dart:

// @dart = 2.8

This annotation is for opting out of sound null safety (see this and this). However, libraries (packages) are not allowed to do that if they want to be sound null safe.