pubspec.yaml 没有 SDK 下限约束
Posted
技术标签:
【中文标题】pubspec.yaml 没有 SDK 下限约束【英文标题】:pubspec.yaml has no lower-bound SDK constraint 【发布时间】:2021-05-13 19:55:57 【问题描述】:我正在参加 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'
【问题讨论】:
只需将 environment: sdk: '>=2.10.0 我已将 environment: sdk: '>=2.10.0 【参考方案1】:即使您的 pubspec.yaml 文件包含正确的 sdk 行,如果您收到此错误,请务必检查主文件夹中的子文件夹。注意到在从 font_awesome_flutter 包中执行 flutter packages get
时会发生这种情况。原因是即使主 pubspec.yaml 包含正确的行,也有一个冒犯的example/pubspec.yaml
。将这些行添加到该文件中:
environment:
sdk: ">=2.7.0 <3.0.0"
Referenced issue.
【讨论】:
这是问题之一。确实应该是公认的答案。 在我的情况下,问题与“font_awesome_flutter”无关,而是来自“OneSignal-Flutter-SDK\example”的文件夹“example”,其中包含有问题的 pubspec.yaml。 提示:一个flutter项目里面有两个pubspec.yaml文件,一个在“root”文件夹下,一个在“example/”文件夹下。我们必须将此行添加到两个文件中。 example/ 文件夹在哪里?【参考方案2】:根据错误说明,我在pubspec.yaml
中添加了以下内容
environment:
sdk: '>=2.10.0 <3.0.0'
然后我执行了flutter pub get
,它现在工作正常。
【讨论】:
【参考方案3】:从 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
【讨论】:
【参考方案4】:用命令行检查你的颤振通道:
flutter channel
如果它在主频道,则切换到稳定频道:
flutter channel stable
【讨论】:
以上是关于pubspec.yaml 没有 SDK 下限约束的主要内容,如果未能解决你的问题,请参考以下文章
在 pubspec.yaml 中包安装 carousel_pro 1.0.0
Flutter小记8修复几个pub cache引起的错误 Could not find ... “pubspec.yaml“ 或 Flutter SDK is not available
Flutter小记8修复几个pub cache引起的错误 Could not find ... “pubspec.yaml“ 或 Flutter SDK is not available
Flutter小记8修复几个pub cache引起的错误 Could not find ... “pubspec.yaml“ 或 Flutter SDK is not available