pubspec.yaml не имеет ограничения SDK нижней границы

Я проходил лабораторную работу по коду флаттера MDC101. Я клонировал стартовый проект из репозитория git в соответствии с инструкциями, но после завершения клонирования я выполнил flutter pub get и это дало мне следующую ошибку.

      pubspec.yaml has no lower-bound SDK constraint.
You should edit pubspec.yaml to contain an SDK constraint:
environment:
  sdk: '>=2.10.0 <3.0.0'

5 ответов

Если вы получили эту ошибку, даже если ваш файл pubspec.yaml содержал правильную строку sdk, обязательно проверьте подпапки в своей основной папке . Было отмечено, что это произошло во время выполнения flutter packages getиз пакета font_awesome_flutter. Причина заключалась в том, что, хотя основной pubspec.yaml содержал правильную строку, был оскорбительный example/pubspec.yaml. Добавьте в этот файл строки:

      environment:
  sdk: ">=2.7.0 <3.0.0"

Указанная проблема.

В соответствии с инструкциями по ошибке я добавил следующее в свой pubspec.yaml

      environment:
  sdk: '>=2.10.0 <3.0.0'

А потом я казнил flutter pub get и теперь он работает нормально.

Начиная с Dart 2.12, пропуск ограничения SDK является ошибкой. Если pubspec не имеет ограничений SDK, pub get не работает с сообщением, подобным следующему:

      pubspec.yaml has no lower-bound SDK constraint.
You should edit pubspec.yaml to contain an SDK constraint:
(...)

Например, следующее ограничение говорит о том, что этот пакет работает с любым Dart SDK версии 2.10.0 или выше:

      environment:
  sdk: '>=2.10.0 <3.0.0'

Для получения дополнительной информации вы можете проверить документы

откройте проект с более низкой версией SDK и новым проектом Flutter скопируйте стартовый код из SDK в новый (удалив код запуска) переместите складку ресурса из более низкого проекта SDK в новый проект, поместив его в новое имя проекта, откройте каталог нового проект удалите файлы mipmap из приложения>main>res и переместите файлы из нижнего SDK, сделайте то же самое для iso>Runner>Assets.xcassets

Проверьте свой канал флаттера с помощью командной строки:

flutter channel

если он находится в главном канале, переключитесь на стабильный канал с помощью:

flutter channel stable

Другие вопросы по тегам