Dart 3.0 完全移除了对非空安全代码的支持,因此项目 pubspec.yaml 中的 SDK 约束必须升级至 >=2.12.0 <3.0.0,并完成完整的空安全迁移,否则 flutter pub get 将失败(如错误码 614)。
dart 3.0 完全移除了对非空安全代码的支持,因此项目 `pubspec.yaml` 中的 sdk 约束必须升级至 `>=2.12.0
Dart 3.0 是一个里程碑式版本——它完全弃用非空安全模式,不再兼容任何未迁移至空安全(Null Safety)的 Dart 代码。这意味着:即使你的本地 Flutter SDK 显示为 3.0.0(对应 Dart 3.0),只要 pubspec.yaml 中声明的 SDK 下限低于 2.12.0(例如 >=2.10.0 <3.0.0),flutter pub get 就会报错:
The lower bound of "sdk: '>=2.10.0 <3.0.0'" must be 2.12.0 or higher to enable null safety.
该错误并非配置语法问题,而是 Dart 工具链的强制校验机制:Dart 3.0 运行时仅接受已启用空安全的代码,而空安全自 Dart 2.12 起成为默认且不可绕过的功能。
✅ 正确的 SDK 约束应修改为:
environment: sdk: ">=2.12.0 <3.0.0" # 注意:下限必须 ≥2.12.0
⚠️ 但仅修改 pubspec.yaml 并不足够!>=2.12.0 仅表示“允许使用空安全”,不代表项目已实际启用空安全。你需要完成完整的迁移流程:
运行以下命令,查看哪些文件尚未迁移:
dart migrate --show-all
或在 VS Code 中右键项目根目录 → “Dart: Start Null Safety Migration”。
大型项目(如含 614 个文件)切忌一次性强制迁移。建议:
迁移完成后,确保:
? 重要提醒:
完成迁移后,再次执行 flutter clean && flutter pub get,错误 614 将彻底消失——你将获得更健壮、可静态分析的 Dart 3 代码基线。