Флаттер: Для этого требуется, чтобы была включена функция языка, не допускающая значений null

#flutter #dart

Вопрос:

Получение ошибки в MyApp конструкторе

 const MyApp({Key? key}) : super(key: key);
 

Для этого требуется, чтобы была включена функция языка, не допускающая значений null.
Попробуйте обновить pubspec.yaml, чтобы установить минимальное ограничение SDK на 2.12.0 или выше, и запустить «pub get».

но sdk по умолчанию уже установлен на 2.12.0

 sdk: ">=2.12.0 <3.0.0"
 

Этот проект создан с использованием последних версий Flutter и Dart.

Версия для дротиков: 2.13.3

Версия флаттера: 2.2.2

Комментарии:

1. Попробуйте запустить «flutter clean», а затем перестроить.

2. возможно, ваша среда разработки использует более старую версию flutter

3. Переход к нулевой безопасности. Вот официальное руководство

4. @gegobyte У меня точно такая же проблема — вы когда-нибудь решали ее?

5. @reesas, я отключил нулевую безопасность. Это моя версия sdk в pubspec.yaml sdk: ">=2.10.0 <3.0.0"

Ответ №1:

В моем случае мне пришлось установить значение 2.13.0, чтобы устранить ошибку:

 sdk: ">=2.13.0 <3.0.0"
 

Ответ №2:

Несколько возможностей:

  • Возможно, файл переопределил уровень языка. Вы можете установить конкретную языковую версию файла, поместив комментарий прямо вверху, например: // @dart=2.9 . Это отключит нулевую безопасность для этого файла. Проверьте наличие такого комментария и удалите его, чтобы устранить ошибку
  • Аналогично, если точка входа в ваше приложение (обычно lib/main.dart ) имеет переопределенный языковой уровень, это будет применено к проекту. Эта ошибка возникает при использовании flutter run , но, как правило, не отображается в интегрированной среде разработки во время разработки
  • Ваша среда разработки может использовать версию flutter, отличную от версии, которую вы использовали для записи своих версий. Вы можете проверить местоположение вашей установки flutter (в системах, подобных Linux), запустив which flutter , чтобы узнать, где находится PATH исполняемый файл. Затем вы можете сравнить это с версией, используемой в вашей среде разработки (зависит от среды разработки).

Комментарии:

1. Да, я проверил main.dart , и в самом верху была языковая версия dart // @dart=2.9 , я удалил ее, но ничего не изменилось, все ошибки все еще там.

Ответ №3:

это связано с тем, что ваша среда разработки использует более старую версию flutter, поэтому попробуйте обновить flutter с помощью этой команды в вашем терминале

 flutter upgrade
 

если возникнет проблема с кадрами, попробуйте очистить проект с помощью команды в терминале

 flutter clean
 

если вы хотите проверить, правильно ли установлен flutter, вы можете проверить это, написав команду в своем терминале

 flutter doctor
 

Комментарии:

1. В нем говорится, что Флаттер уже в курсе событий на стабильном канале. Уже запускались flutter clean несколько раз, но безрезультатно.