Search code examples
flutterdartdart-null-safety

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


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.


Solution

  • 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