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

Android MLKit OCR在Galaxy Tab Active3设备无法运行问题求助

解决MLKit OCR在Galaxy Tab Active3 SM-T577上的模块下载等待异常

问题详情

Firebase Crashlytics捕获到非致命异常:

Non-fatal Exception: com.google.mlkit.common.MlKitException: Waiting for the text optional module to be downloaded. Please wait.
   at com.google.mlkit.vision.text.internal.zzb.zzb(com.google.android.gms:play-services-mlkit-text-recognition-common@@17.0.0:16)
   at com.google.mlkit.vision.text.internal.TextRecognizerTaskWithResource.load(com.google.android.gms:play-services-mlkit-text-recognition-common@@17.0.0:1)
   at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.4.0:4)
   at com.google.mlkit.common.sdkinternal.zzn.run(:10)
   at com.google.mlkit.common.sdkinternal.zzp.run(com.google.mlkit:common@@18.4.0:2)
   at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.4.0:4)
   at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.4.0:1)
   at com.google.mlkit.common.sdkinternal.zzk.run(:2)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
   at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.4.0:2)
   at com.google.mlkit.common.sdkinternal.zzi.run(:2)
   at java.lang.Thread.run(Thread.java:923)

当前项目配置:

Gradle依赖

implementation 'com.google.android.gms:play-services-mlkit-text-recognition:18.0.0'
implementation 'com.google.android.gms:play-services-mlkit-text-recognition:18.0.0'
implementation 'com.google.mlkit:language-id:17.0.4'

Manifest配置

<meta-data
android:name="com.google.mlkit.vision.DEPENDENCIES"
android:value="ocr" />

已尝试操作:卸载重装应用、清除Google Play Store数据,问题仍存在。


解决方案

1. 清理重复的Gradle依赖

Gradle中重复声明了play-services-mlkit-text-recognition,保留一行即可避免依赖冲突:

implementation 'com.google.android.gms:play-services-mlkit-text-recognition:18.0.0'
implementation 'com.google.mlkit:language-id:17.0.4'

2. 手动监听模型下载状态

Manifest的自动下载机制可能在部分设备上失效,建议主动触发下载并监听状态,确保模型下载完成后再调用OCR:

import com.google.mlkit.common.model.DownloadConditions
import com.google.mlkit.common.model.RemoteModelManager
import com.google.mlkit.vision.text.TextRecognition
import com.google.mlkit.vision.text.TextRecognizerOptions

// 获取远程模型管理器
val remoteModelManager = RemoteModelManager.getInstance()
// 定义OCR模型
val textModel = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS).remoteModel

// 设置下载条件(可根据需求调整网络要求)
val conditions = DownloadConditions.Builder()
    .requireWifi() // 若允许移动网络下载则注释此行
    .build()

// 启动下载并监听结果
remoteModelManager.download(textModel, conditions)
    .addOnSuccessListener {
        // 模型下载完成,初始化OCR并执行识别逻辑
        val recognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS)
        // 此处添加识别代码
    }
    .addOnFailureListener { exception ->
        // 下载失败,提示用户检查网络或重试
    }

3. 改用捆绑版OCR模型

如果设备始终无法下载远程模型,可切换为捆绑版模型(将模型打包在APK中,无需下载):
替换Gradle依赖为:

implementation 'com.google.android.gms:play-services-mlkit-text-recognition-latin:18.0.0'
implementation 'com.google.mlkit:language-id:17.0.4'

注意:捆绑版会增加APK体积,需根据业务场景权衡取舍。

4. 检查Google Play服务版本

确保设备上的Google Play服务已更新至最新版本,旧版本可能导致模型下载通道异常。

5. 验证网络访问权限

确认设备已授予应用网络权限,且网络环境可正常访问Google服务(部分地区或网络可能存在访问限制)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:10:38