问题描述
我参加了 MDC101 Flutter 代码实验室。我按照说明从 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'
解决方法
如果您在 pubspec.yaml 文件包含正确的 sdk 行时收到此错误,请务必检查主文件夹中的子文件夹。注意到在执行 font_awesome_flutter 包中的 flutter packages get
时会发生这种情况。原因是即使主要的 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:
(...)
例如,以下约束表示此包适用于 2.10.0 或更高版本的任何 Dart SDK:
environment:
sdk: '>=2.10.0 <3.0.0'
有关详细信息,您可以查看 docs
,用命令行检查你的颤振通道:
flutter channel
如果它在主频道,则切换到稳定频道:
flutter channel stable