Flutter编译报错:库未启用空安全,需将语言版本设为2.12及以上
Flutter Release构建空安全错误解决方法
错误原因
代码中使用了Key?、required这类空安全语法,但项目未启用健全空安全,或SDK版本低于2.12,导致编译失败。
解决方案一:升级到健全空安全(推荐)
检查并升级Flutter/Dart版本
运行命令确认版本,确保Flutter≥2.0、Dart≥2.12:flutter --version版本不足时执行升级:
flutter upgrade更新项目SDK约束
修改pubspec.yaml中的environment部分,指定支持空安全的SDK版本:environment: sdk: ">=2.12.0 <3.0.0"更新依赖到空安全版本
检查依赖是否支持空安全:dart pub outdated --mode=null-safety升级所有依赖至兼容空安全的版本:
dart pub upgrade --null-safety适配代码空安全规则
确保项目中所有代码遵循空安全规范,比如正确使用可空类型标记?、required关键字等。
解决方案二:使用不健全空安全构建(临时方案)
如果暂时无法升级空安全,可通过以下方式绕过检查:
- 直接在构建命令中添加参数:
flutter build release --no-sound-null-safety - 或者修改
pubspec.yaml的SDK约束为较低版本,并替换空安全语法:
同时将代码中的environment: sdk: ">=2.7.0 <3.0.0"required替换为@required注解(需导入package:meta/meta.dart),去掉类型后的?标记。
内容的提问来源于stack exchange,提问作者Muhammed Muzammil - Vkd
相关产品推荐
相关产品推荐

