如何修复Flutter项目Cannot run with sound null safety错误
报错原因
该错误触发是因为当前项目默认开启了Dart健全空安全校验,但项目依赖的fl_chart、equatable、path_drawing、path_parsing四个包的当前使用版本未适配空安全,导致编译拦截。
解决方法
方案1:升级依赖至空安全适配版本(优先推荐)
这是符合开发规范的长期解决方案,操作步骤:
- 打开项目根目录的
pubspec.yaml配置文件 - 在Android Studio底部打开Terminal终端,执行依赖升级命令:
flutter pub upgrade --major-versions - 命令执行完成后,核对几个问题依赖的版本:
equatable2.0.0及以上版本支持空安全fl_chart0.40.0及以上版本支持空安全path_drawing、path_parsing1.0.0及以上版本支持空安全
- 确认版本符合要求后,执行
flutter pub get拉取依赖,重新启动项目即可。
如果批量升级后个别依赖没有自动升到适配版本,可以手动在pubspec.yaml中指定对应包的最低适配版本号,再重新执行拉取依赖操作。
方案2:临时关闭健全空安全校验(仅作临时兼容用)
如果部分依赖暂时没有发布空安全适配版本,可以通过启动参数绕过校验,用非健全空安全模式运行:
- 命令行启动时,追加启动参数即可:
flutter run --no-sound-null-safety - 如果需要在Android Studio中点击运行按钮直接启动,需要提前配置运行参数:
- 点击顶部工具栏运行按钮旁的下拉菜单,选择
Edit Configurations - 找到当前使用的Flutter启动配置,在
Additional run args输入栏填入--no-sound-null-safety - 点击Apply保存配置后,重新点击运行按钮即可启动。
- 点击顶部工具栏运行按钮旁的下拉菜单,选择
注意:非健全空安全模式会失去空安全带来的静态类型检查防护,仅适合临时调试使用,后续需尽快完成依赖的空安全适配,移除该启动参数。
内容的提问来源于stack exchange,提问作者pomoworko.com
相关产品推荐
相关产品推荐

