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

Flutter google_ml_kit条形码扫描示例无法运行,该如何解决?

谷歌ML Kit示例运行异常排查(针对驾照条码扫描场景)

1 必须完成的平台端配置

1.1 Android端配置

  • 最低SDK版本要求:android/app/build.gradle里的minSdkVersion必须设为21及以上,ML Kit的条码检测能力不支持21以下的Android版本
  • 权限配置:在android/app/src/main/AndroidManifest.xml里添加摄像头权限,还有ML Kit的元数据声明:
<!-- 摄像头权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<!-- 声明自动下载ML Kit条码检测模型 -->
<meta-data
    android:name="com.google.mlkit.vision.DEPENDENCIES"
    android:value="barcode" />
  • 应用安装后首次启动需要完成条码检测模型下载,需要保证网络正常。

1.2 iOS端配置

  • 最低系统版本要求:ios/Podfile里的platform :ios必须设为12.0及以上
  • 权限配置:在ios/Runner/Info.plist里添加摄像头权限声明:
<key>NSCameraUsageDescription</key>
<string>需要使用摄像头扫描驾照条形码</string>
  • 编译配置:在Xcode中打开项目,将Build Settings里的Strip Debug Symbols During Copy设为No,避免ML Kit的符号被误裁剪导致运行崩溃
  • 首次运行会自动下载条码检测模型,需要保证网络正常

2 美国驾照条码扫描的特殊配置

美国驾照大多使用PDF417格式的条码,需要在初始化BarcodeScanner的时候指定检测格式,避免无效识别、提升识别效率:

final barcodeScanner = BarcodeScanner(
  formats: [BarcodeFormat.pdf417], // 仅检测PDF417格式,匹配美国驾照编码规则
);

识别成功后可以直接从Barcode的rawValue属性中拿到驾照的编码内容,按照AAMVA标准解析即可提取出姓名、地址、生日等字段。

3 示例代码运行常见问题

  • 你提供的代码是官方示例的主入口,需要保证你已经把示例中对应的VisionDetectorViews、NlpDetectorViews目录完整拷贝到项目中,不要缺失对应页面的实现文件
  • 摄像头权限需要在调用扫描功能前动态申请,Android 6.0+和iOS都要求动态获取敏感权限,可以通过permission_handler包完成权限申请逻辑
  • 如果只需要条码扫描能力,建议单独引入google_mlkit_barcode_scanning分包,比引入全量google_ml_kit包体积更小、依赖冲突概率更低
  • 调整配置后执行flutter clean清理缓存再重新编译,避免旧的缓存配置导致运行异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:18:03