Flutter移动端开发遇universal_html空安全类型错误求助
解决Flutter移动端构建时的universal_html空安全错误
问题根源
你遇到的错误来自间接依赖的universal_html包(版本2.2.2),该版本代码存在空安全兼容问题:将可空类型String?传递给了要求非空Object的参数,而你的Dart环境启用了空安全(SDK >=2.12.0),导致编译失败。你并未直接引入该包,它是由pubspec中的某个依赖间接引入的。
解决方案
步骤1:定位引入universal_html的依赖
执行以下命令查看完整依赖树,找到哪个包间接引入了universal_html:
flutter pub deps
在输出中查找universal_html的依赖链,示例格式:
... └─ some_dependency x.x.x └─ universal_html 2.2.2 ...
步骤2:修复版本冲突
有两种可行方案:
方案A:升级依赖包
如果找到的依赖包有更新版本,且新版本使用了修复空安全问题的universal_html版本(比如>=2.2.3),直接升级该依赖包的版本到最新兼容版,然后执行flutter pub get。方案B:强制覆盖universal_html版本
如果无法升级依赖包,在pubspec.yaml中添加dependency_overrides,强制指定universal_html为修复问题的版本:
dependency_overrides: universal_html: ^2.2.3
添加后依次执行:
flutter pub get flutter clean flutter run
验证
完成上述操作后重新构建项目,该空安全错误即可解决。
内容的提问来源于stack exchange,提问作者Parvez Wadhvaniya
相关产品推荐
相关产品推荐

