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