如何解决flutter_phone_state包引发的空安全编译失败问题
报错原因
该错误由空安全编译校验不通过导致:你引入的flutter_phone_state: ^0.5.9版本已停止维护多年,未适配Dart空安全规范,连带它依赖的所有子包也都是非空安全版本,而你当前使用的Flutter SDK默认开启严格空安全编译校验,因此触发编译失败。
解决方案
方案1:更换支持空安全的通话状态监听包(推荐)
flutter_phone_state无适配空安全的正式版本,优先建议替换为仍在维护的同类功能包,例如phone_state:
- 删除pubspec.yaml中
flutter_phone_state: ^0.5.9的配置 - 新增支持空安全的通话状态包配置:
dependencies: flutter: sdk: flutter phone_state: ^1.0.3 cupertino_icons: ^1.0.2
- 执行
flutter pub get拉取新依赖,替换原有相关导入代码后即可正常编译。
方案2:禁用空安全编译校验(仅临时调试使用,不推荐线上使用)
如果必须继续使用flutter_phone_state包,可通过添加编译参数关闭空安全校验:
命令行运行/打包配置
- 调试运行命令:
flutter run --no-sound-null-safety - 打包命令:
flutter build apk --no-sound-null-safety
IDE永久生效配置
- Android Studio:打开Run/Debug Configurations,在Additional run args栏填入
--no-sound-null-safety - VS Code:打开项目根目录下
.vscode/launch.json文件,在configurations配置项中添加args参数:
{ "version": "0.2.0", "configurations": [ { "name": "Flutter", "request": "launch", "type": "dart", "args": ["--no-sound-null-safety"] } ] }
内容的提问来源于stack exchange,提问作者Burhanuddin Kutub
相关产品推荐
相关产品推荐

