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

Android armeabi-v7a构建下ML Kit文字识别崩溃问题求助

ML Kit文字识别armeabi-v7a架构崩溃问题解决

问题描述

我在原生Android代码中使用ML Kit文字识别最新版本,依赖配置为:

implementation 'com.google.android.gms:play-services-mlkit-text-recognition:18.0.2'

该功能在arm64-v8a架构下运行正常,但在armeabi-v7a架构下崩溃,堆栈信息如下:

java.lang.UnsatisfiedLinkError: dalvik.system.DelegateLastClassLoader[DexPathList[[zip file "/data/user_de/0/com.google.android.gms/app_chimera/m/00000476/dl-MlkitOcrCommon.optional_231115100400.apk"],nativeLibraryDirectories=[/data/user_de/0/com.google.android.gms/app_chimera/m/00000476/dl-MlkitOcrCommon.optional_231115100400.apk!/lib/armeabi-v7a, /data/user_de/0/com.google.android.gms/app_chimera/m/00000476/dl-MlkitOcrCommon.optional_231115100400.apk!/lib/armeabi, /system/lib, /system/product/lib]]] couldn't find "libmlkit_google_ocr_pipeline_gms.so"
                                        at java.lang.Runtime.loadLibrary0(Runtime.java:1067)
                                        at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
                                        at java.lang.System.loadLibrary(System.java:1667)
                                        at so.c(:com.google.android.gms.optional_mlkit_ocr_common@231115065@23.11.15 (100400-0):3)
                                        at so.f(:com.google.android.gms.optional_mlkit_ocr_common@231115065@23.11.15 (100400-0):1)
                                        at so.e(:com.google.android.gms.optional_mlkit_ocr_common@231115065@23.11.15 (100400-0):0)
                                        at azb.a(:com.google.android.gms.optional_mlkit_ocr_common@231115065@23.11.15 (100400-0):5)
                                        at bp.onTransact(:com.google.android.gms.optional_mlkit_ocr_common@231115065@23.11.15 (100400-0):4)
                                        at android.os.Binder.transact(Binder.java:914)
                                        at bo.b(:com.google.android.gms.policy_vision_ocr_dynamite@231000401@231000400057.513075010.513075010:2)
                                        at aqs.f(:com.google.android.gms.policy_vision_ocr_dynamite@231000401@231000400057.513075010.513075010:0)
                                        at lr.b(:com.google.android.gms.policy_vision_ocr_dynamite@231000401@231000400057.513075010.513075010:1)
                                        at lr.a(:com.google.android.gms.policy_vision_ocr_dynamite@231000401@231000400057.513075010.513075010:8)
                                        at bp.onTransact(:com.google.android.gms.policy_vision_ocr_dynamite@231000401@231000400057.513075010.513075010:4)
                                        at android.os.Binder.transact(Binder.java:914)
                                        at com.google.android.gms.internal.vision.zzb.zza(com.google.android.gms:play-services-vision-common@@19.1.0:10)
                                        at com.google.android.gms.internal.vision.zzac.zza(com.google.android.gms:play-services-vision@@20.1.0:7)
                                        at com.google.android.gms.internal.vision.zzan.zza(com.google.android.gms:play-services-vision@@20.1.0:8)
                                        at com.google.android.gms.vision.text.TextRecognizer.detect(com.google.android.gms:play-services-vision@@20.1.0:41)
                                        at com.google.mlkit.vision.text.internal.zzb.zza(com.google.android.gms:play-services-mlkit-text-recognition@@16.0.0:33)
                                        at com.google.mlkit.vision.text.internal.zzb.run(com.google.android.gms:play-services-mlkit-text-recognition@@16.0.0:51)
                                        at com.google.mlkit.vision.common.internal.MobileVisionBase.zza(com.google.mlkit:vision-common@@16.0.0:23)
                                        at com.google.mlkit.vision.common.internal.zzb.call(Unknown Source:4)
                                        at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@16.0.0:26)
                                        at com.google.mlkit.common.sdkinternal.zzn.call(Unknown Source:6)
                                        at com.google.mlkit.common.sdkinternal.zzm.run(com.google.mlkit:common@@16.0.0:5)
                                        at com.google.mlkit.common.sdkinternal.zzq.run(com.google.mlkit:common@@16.0.0:3)
                                        at android.os.Handler.handleCallback(Handler.java:883)
                                        at android.os.Handler.dispatchMessage(Handler.java:100)
                                        at com.google.android.gms.internal.mlkit_common.zzb.dispatchMessage(com.google.mlkit:common@@16.0.0:6)
                                        at android.os.Looper.loop(Looper.java:224)
                                        at android.os.HandlerThread.run(HandlerThread.java:67)

已尝试降级ML Kit版本,但问题未解决。

解决方法

  • 检查ABI过滤配置
    在Module级别的build.gradle中明确指定支持的ABI,避免错误过滤导致库缺失:

    android {
        defaultConfig {
            ndk {
                abiFilters 'armeabi-v7a', 'arm64-v8a'
            }
        }
    }
    
  • 主动触发模型下载
    ML Kit依赖动态下载的Native库,可在应用启动时主动触发下载,确保库文件完整:

    TextRecognition.getClient()
        .downloadModelIfNeeded()
        .addOnSuccessListener(unused -> {
            // 模型下载完成后执行识别操作
        })
        .addOnFailureListener(e -> {
            // 处理下载失败逻辑
        });
    
  • 切换到静态依赖版本
    改用静态链接的ML Kit库,避免动态模块下载的ABI匹配问题,依赖配置改为:

    implementation 'com.google.android.gms:play-services-mlkit-text-recognition-static:18.0.2'
    

    注意:静态库会增加APK体积,但能避免动态下载带来的兼容性问题。

  • 清理Google Play服务缓存
    设备上Google Play服务的缓存异常可能导致库文件下载失败,可指导用户进入设备设置,找到Google Play服务,清除缓存和存储后重启设备重试。

  • 更新Google Play服务版本
    崩溃日志显示的Google Play服务版本较旧,可能存在ABI兼容问题,确保设备上的Google Play服务已更新至最新版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:43:11