You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

google_ml_kit如何在编译阶段强制下载文本识别模块?

问题根因

你遇到的报错是Google ML Kit默认启用动态按需加载机制,OCR识别模型不会在应用编译/安装时内置,首次调用识别能力时才会触发模块下载,当设备网络受限或者Google服务异常时就会触发该报错。

强制预装OCR模块的配置方案
  • 打开安卓项目路径下的android/app/src/main/AndroidManifest.xml文件,在<application>标签内部添加如下元数据配置,指定应用安装时自动预装OCR识别模块:
<meta-data
    android:name="com.google.mlkit.vision.DEPENDENCIES"
    android:value="ocr" />

如果需要同时预装其他ML Kit能力(如条码识别、人脸检测),可在android:value字段中用英文逗号分隔多个能力标识,示例:android:value="ocr,barcode,face"。

  • 可选优化:当前你使用的全量google_ml_kit插件已停止维护,官方已拆分出单能力独立插件,稳定性更高,建议将依赖替换为单独的OCR插件google_mlkit_text_recognition,对应调用代码调整如下:
// 导入替换为
import 'package:google_mlkit_text_recognition/google_mlkit_text_recognition.dart';

// 识别逻辑调整
Future readText(_file)async{
  try {
    final inputImage = InputImage.fromFile(_file);
    // 中文识别可替换为TextRecognitionScript.chinese
    final textRecognizer = TextRecognizer(script: TextRecognitionScript.latin);
    final RecognisedText recognisedText = await textRecognizer.processImage(inputImage);
    // 用完及时释放资源
    textRecognizer.close();
    print(recognisedText);
    return recognisedText;
  } on PlatformException catch(e){
    print(e.message.toString());
    return null;
  }
}
测试注意事项
  • 测试设备必须搭载完整的Google Play服务,国内网络环境下需要可正常访问Google服务,否则模块预装仍会失败。
  • 原代码中readText方法捕获异常后无返回值,会触发空安全运行时报错,建议补充异常分支的返回逻辑。

内容的提问来源于stack exchange,提问作者Troy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:15:03