升级Flutter后导入flutter_mobile_vision.dart出现legacy包空安全报错如何解决
Flutter实时OCR功能升级版本报错解决方案

该报错原因是你使用的flutter_mobile_vision库未适配Flutter空安全规范,无法在默认开启空安全的高版本Flutter项目中导入,可选择以下任意方案解决:
- 方案一:全局禁用项目空安全校验
在项目入口文件lib/main.dart的第一行添加如下注解,即可让整个项目运行在非空安全模式,兼容所有legacy版本库:
// @dart=2.9
该方案改动最小,原有代码不需要调整,缺点是项目无法使用空安全相关特性。
- 方案二:替换为支持空安全的OCR库
推荐使用google_mlkit_text_recognition库,该库为官方维护的文本识别库,完全适配最新版Flutter空安全规范,功能覆盖原库所有实时OCR能力,识别精度更高。你只需要移除原有flutter_mobile_vision依赖,替换为新库依赖,再对应调整业务实现代码即可。 - 方案三:手动适配原库空安全
如果必须继续使用flutter_mobile_vision库,可自行拉取该库源码,对源码做空安全适配改造,改造完成后在项目pubspec.yaml中直接依赖本地修改后的库文件即可。 - 方案四:回退Flutter版本
将你的Flutter版本降级到2.12.0之前的版本,该版本默认没有强制开启空安全校验,可直接运行原有代码。
内容的提问来源于stack exchange,提问作者Bob Hassan
相关产品推荐
相关产品推荐

