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

Android应用出现FirebaseMLHandler致命异常,求解决方案

Firebase ML条码检测NoSuchFieldError异常修复方案

问题描述

运行Android应用时,Logcat重复抛出以下致命异常:

FATAL EXCEPTION: FirebaseMLHandler
Process: fr.myluckyday.myverimed, PID: 15453
java.lang.NoSuchFieldError: No field zzbis of type I in class Lcom/google/firebase/ml/vision/barcode/internal/BarcodeDetectorOptionsParcel; or its superclasses (declaration of 'com.google.firebase.ml.vision.barcode.internal.BarcodeDetectorOptionsParcel' appears in /data/app/~~_BRWdWVND46UrTRPIi-iYg==/fr.myluckyday.myverimed-BB5LdJZh5-UCx0k9n3ASNw==/base.apk)
at com.google.firebase.ml.vision.barcode.zzb.(com.google.firebase:firebase-ml-vision-barcode-model@@16.0.1:3)
at com.google.firebase.ml.vision.barcode.BarcodeDetectorCreator.newBarcodeDetector(com.google.firebase:firebase-ml-vision-barcode-model@@16.0.1:2)
at com.google.firebase.ml.vision.barcode.internal.zza.zzps(com.google.firebase:firebase-ml-vision@@24.0.1:29)
at com.google.firebase.ml.vision.barcode.internal.zza.zznu(com.google.firebase:firebase-ml-vision@@24.0.1:10)
at com.google.android.gms.internal.firebase_ml.zzpz.zzf(com.google.firebase:firebase-ml-common@@22.0.1:53)
at com.google.android.gms.internal.firebase_ml.zzpz$zza.zznx(com.google.firebase:firebase-ml-common@@22.0.1:7)
at com.google.android.gms.internal.firebase_ml.zzpz$zza.call(com.google.firebase:firebase-ml-common@@22.0.1:24)
at com.google.android.gms.internal.firebase_ml.zzpf.zza(com.google.firebase:firebase-ml-common@@22.0.1:32)
at com.google.android.gms.internal.firebase_ml.zzpe.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.google.android.gms.internal.firebase_ml.zze.dispatchMessage(com.google.firebase:firebase-ml-common@@22.0.1:6)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.os.HandlerThread.run(HandlerThread.java:67)

(注:Logcat中重复出现上述异常,仅PID不同,错误堆栈一致)

问题原因

该异常由Firebase ML组件版本不兼容导致:当前使用的firebase-ml-vision-barcode-model(16.0.1)与firebase-ml-vision(24.0.1)、firebase-ml-common(22.0.1)版本不匹配。旧版条码模型库尝试访问新版核心库中已移除/重命名的zzbis字段,引发反射失败。

另外,Firebase ML Vision已被官方标记为废弃,推荐迁移至ML Kit独立条码扫描库。

修复步骤

方案1:统一Firebase ML组件版本(临时方案)

若暂时不想切换库,需确保所有Firebase ML相关依赖版本匹配:

  • 打开Module级别的build.gradle文件
  • 将firebase-ml-vision-barcode-model版本升级至与firebase-ml-vision兼容的版本,示例:
implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
implementation 'com.google.firebase:firebase-ml-vision-barcode-model:24.0.1'
implementation 'com.google.firebase:firebase-ml-common:22.0.1'
  • 执行Clean Project → Rebuild Project,清理旧构建缓存

方案2:迁移至ML Kit条码扫描(推荐)

ML Kit提供更轻量、维护更活跃的条码扫描方案,步骤如下:

  1. 移除旧Firebase ML Vision依赖:
// 删除以下行
implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
implementation 'com.google.firebase:firebase-ml-vision-barcode-model:16.0.1'
implementation 'com.google.firebase:firebase-ml-common:22.0.1'
  1. 添加ML Kit条码扫描依赖:
implementation 'com.google.mlkit:barcode-scanning:17.2.0'
  1. 替换原有条码检测代码:
    旧代码(Firebase ML Vision):
FirebaseVisionBarcodeDetector detector = FirebaseVision.getInstance()
        .getVisionBarcodeDetector(options);

新代码(ML Kit):

BarcodeScannerOptions options = new BarcodeScannerOptions.Builder()
        .setBarcodeFormats(Barcode.FORMAT_ALL_FORMATS)
        .build();
BarcodeScanner scanner = BarcodeScanning.getClient(options);
  1. 重新构建项目并测试功能

额外排查点

  • 执行./gradlew app:dependencies查看依赖树,排查第三方依赖是否间接引入旧版Firebase ML组件,如有则排除冲突版本
  • 清理设备上的应用缓存后重新安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:40:40