【发布时间】:2021-01-02 03:57:40
【问题描述】:
我最近更改了旧的条形码/QR 扫描库以支持 Google ML Kit for barcode scanning,并且自从我这样做后,我通过 crashlytics 收到了一些以前没有的新崩溃报告。
致命异常:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip 文件 "/data/app/com.my.app-Q4EYyt2jmFlLaZ-mHL-J5A==/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-Q4EYyt2jmFlLaZ-mHL-J5A==/lib/ arm64, /system/lib64, /vendor/lib64, /product/lib64]]] 找不到 “libbarhopper_v2.so” 在 java.lang.Runtime.loadLibrary0(Runtime.java:1011) 在 java.lang.System.loadLibrary(System.java:1660) 在 com.google.android.libraries.barhopper.BarhopperV2.(BarhopperV2.java:5) 在 com.google.mlkit.vision.barcode.zza.a_(zza.java:7) 在 com.google.mlkit.vision.barcode.internal.zzf.b(zzf.java:17) 在 com.google.mlkit.common.sdkinternal.ModelResource.zza(ModelResource.java:1) 在 com.google.mlkit.common.sdkinternal.zzl.run(zzl.java:1) 在 com.google.mlkit.common.sdkinternal.zzp.run(zzp.java:3) 在 com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(MlKitThreadPool.java:19) 在 com.google.mlkit.common.sdkinternal.MlKitThreadPool.zza(MlKitThreadPool.java:1) 在 com.google.mlkit.common.sdkinternal.zzh.run(zzh.java:1) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 在 java.lang.Thread.run(Thread.java:784)
致命异常:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip 文件 "/data/app/com.my.app-Y8cCSVtTMYVdnQQovlR0cw==/base.apk"],nativeLibraryDirectories=[/data/app/com.my.app-Y8cCSVtTMYVdnQQovlR0cw==/lib/arm, /system/lib, /vendor/lib]]] 找不到“libbarhopper_v2.so” 在 java.lang.Runtime.loadLibrary0(Runtime.java:1067) 在 java.lang.Runtime.loadLibrary0(Runtime.java:1007) 在 java.lang.System.loadLibrary(System.java:1667) 在 com.google.android.libraries.barhopper.BarhopperV2.(BarhopperV2.java:5) 在 com.google.mlkit.vision.barcode.zza.a_(zza.java:7) 在 com.google.mlkit.vision.barcode.internal.zzf.b(zzf.java:17) 在 com.google.mlkit.common.sdkinternal.ModelResource.zza(ModelResource.java:1) 在 com.google.mlkit.common.sdkinternal.zzl.run(zzl.java:1) 在 com.google.mlkit.common.sdkinternal.zzp.run(zzp.java:3) 在 com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(MlKitThreadPool.java:19) 在 com.google.mlkit.common.sdkinternal.MlKitThreadPool.zza(MlKitThreadPool.java:1) 在 com.google.mlkit.common.sdkinternal.zzh.run(zzh.java:1) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 在 java.lang.Thread.run(Thread.java:919)
简而言之,这一切都归结为这个找不到“libbarhopper_v2.so”错误。
有人知道如何解决这个问题吗?
============
编辑:受影响设备列表:
- 三星 Galaxy A6,Android 10
- 三星 Galaxy J7 Max,Android 8.1.0
- 小米红米Go,安卓8.1.0
- 三星 Galaxy Grand Prime,Android 5.1.1
- 摩托罗拉 Moto G(第二代)
- OPPO A33w,Android 5.1
- Starmobile Play Plus
- 三星 Galaxy J2 Pro,Android 6.0.1
- 华为Y3III,安卓6.0
- 华为 GR5,Android 6.0.1
- 摩托罗拉 Moto X Play,Android 7.1.1
- 华为 G Elite Plus,Android 7.0
- 三星 Galaxy J6,Android 9
- 三星 Galaxy J7 Prime,Android 7.0
- 联想 Vibe k6,Android 7.0
- Wiko Pulp Fab 4G,Android 5.1.1
【问题讨论】:
-
你使用的是什么依赖? 'com.google.mlkit:barcode-scanning' 还是 'com.google.android.gms:play-services-mlkit-barcode-scanning'?另外,你如何编译你的应用程序,你是构建一个 APK 还是 app bundle?
-
@Shiyu 依赖是 com.google.mlkit:barcode-scanning:16.0.2,我正在构建一个 app bundle
-
好的,你能确定 .so 文件在你的 base.apk 中吗?
-
是的,libbarhopper_v2.so 库在 apk 中;事实上,apk 本身对 99% 的用户都可以正常工作。错误只发生在其中的一小部分。
-
您能提供更多关于这些设备的一小部分的信息吗?像设备品牌,构建等等。这将有助于我们调试
标签: android qr-code barcode google-mlkit