0

I am using mlkit for text recognition with latest version with native code.

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

text recognition provide the desired results with arm64-v8a but crashes with armeabi-v7a with following stack trace

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)

tried with degraded the mlkit version but still no luck.

2 Answers2

1

Please try using this in you dependencies implementation 'com.google.mlkit:text-recognition:16.0.0-beta6' instead of 'implementation 'com.google.android.gms:play-services-mlkit-text-recognition:18.0.2'

  • Could be useful even for whom are searching for "java.lang.UnsatisfiedLinkError: dlopen failed: library "libmlkit_google_ocr_pipeline_gms.so" not found" – Enrico Valdinosi Apr 12 '23 at 15:19
0

it depends on which emulator/device you are deploying the apk to. "arm64-v8a" works for you probably because you are testing using a 64bit arm device. "armabi-v7a" will work for you if you test using a 32bit arm device. Similarly if you are testing using an emulator, you should use x86 built. This crash would happen if you use mix them up, say use a armabi-v7a built on a 64bit device.