跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Dart大前端

Flutter 升级后报错 Cannot run with sound null safety 解决方案

Flutter SDK 升级至 2.0 及以上版本后,若项目依赖不支持空安全,运行时会抛出 Cannot run with sound null safety 错误。解决思路主要有两种:一是在 Android Studio 运行配置中添加 --no-sound-null-safety 参数以临时绕过检查;二是将 pubspec.yaml 中的 SDK 约束降级至 2.12.0 以下版本。前者适用于快速验证或无法立即修改依赖的场景,后者则是针对老旧项目的根本性兼容方案。

CodeArtist发布于 2021/8/13更新于 2026/10/2187 浏览
Flutter 升级后报错 Cannot run with sound null safety 解决方案

Flutter 升级后遇到 Cannot run with sound null safety 错误怎么办

当把 Flutter SDK 升级到 2.0 或更高版本时,运行旧项目可能会直接报错,提示如下:

Error: Cannot run with sound null safety, because the following dependencies don't support null safety: - package:flutter_swiper - package:flutter_page_indicator - package:transformer_page_view
FAILURE: Build failed with an exception.

这通常是因为项目里的某些第三方包还没适配 Dart 的空安全(Null Safety)机制。遇到这种情况,我有两个常用的解决办法,可以根据实际情况选择。

方案一:添加启动参数(临时绕过)

如果你只是想快速跑通项目,或者暂时不想动依赖,可以在 Android Studio 里忽略这个检查。

打开 Android Studio,依次点击菜单栏的【Run】 --> 【Edit Configurations】。在弹出的窗口中找到【Add Additional Run args】输入框,填入 --no-sound-null-safety。

保存后重新运行,错误就会消失。虽然这个方法能解决问题,但它只是绕过了检查,并没有真正修复兼容性,长期来看可能还会埋下隐患。

方案二:降低 SDK 版本要求(针对老项目)

如果是维护一些比较老的遗留项目,且短期内无法更新所有依赖包,最直接的办法是放宽 SDK 的版本限制。

找到项目根目录下的 pubspec.yaml 文件,定位到 environment 部分,把 SDK 约束改低一点。比如:

sdk: ">=2.12.0 <3.0.0"

改成:

sdk: ">=2.8.0 <3.0.0"

因为从 SDK 2.12 开始,Dart 强制引入了空安全特性。降级后,构建工具就不会再强制要求依赖包支持空安全了。

总结

这两种方法各有适用场景。如果是新项目或者依赖可控,建议优先升级依赖包以适配空安全;如果是老项目紧急上线,先用启动参数救急,再逐步规划迁移。

目录

  1. Flutter 升级后遇到 Cannot run with sound null safety 错误怎么办
  2. 方案一:添加启动参数(临时绕过)
  3. 方案二:降低 SDK 版本要求(针对老项目)
  4. 总结

更多推荐文章

查看全部
  • Python 发展现状与未来趋势
  • 如何从零开始学习信息安全与网络安全
  • Python Wheel (.whl) 文件安装实战指南
  • Linux 系统基础:体系、命令与 Vim 编辑器
  • 使用 FastAPI 与 ONNX 部署机器学习模型的最佳实践
  • 基于 RAG 技术的商品智能搜索高效解决方案
  • Linux 系统编程:Ext2 文件系统核心架构解析
  • Python 主流开发框架分类与选型指南
  • 动态规划经典例题:三步问题、第 N 个泰波那契数与最小花费爬楼梯
  • Python 爬虫快速入门实战指南
  • TWIST2 全身 VR 遥操控制系统:基于视觉观测的人形机器人自主策略学习
  • AI 前端深度解析:技术差异、学习路线与职业前景
  • Spring MVC 中 Cookie 与 Session 机制详解
  • Go 语言快速入门:从环境搭建到并发实战总结
  • Python Pandas DataFrame 常用方法精讲
  • Python+Flask+Vue 在线宠物医疗预约平台的设计与实现
  • Java 开发实战:Mybatis-Plus 与 Docker 部署指南
  • Flutter eip55 库在鸿蒙系统的适配与以太坊地址校验实战
  • TD3 算法详解:双延迟深度确定性策略梯度
  • 与 DeepSeek 对话:关于人类存在意义的终极思考

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online