【问题标题】:Google ML Kit: couldn't find "libbarhopper_v2.so"Google ML Kit:找不到“libbarhopper_v2.so”
【发布时间】: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


【解决方案1】:

在我在项目的运行配置中禁用“允许并行运行”后,这种情况停止发生,我因另一个不相关的问题而禁用。

正如 OP 所说,它在第一次运行时始终如一地发生,但在第二次运行之后就没有发生。

有趣的是,我的任何用户都没有遇到过这种情况,只发生在开发人员身上。

【讨论】:

    【解决方案2】:

    App bundle 有一个开放错误:https://issuetracker.google.com/issues/127691101

    根据bug,你可以在manifest中设置android:extractNativeLibstrue试试看。

    【讨论】:

    • 在尝试了建议的解决方案后:AndnroidManifest.xml 中的 extractNativeLibs=true gradle.properties 中的 android.bundle.enableUncompressedNativeLibs=false 我可以确认此修复程序不起作用并且问题仍然存在
    • @AnkitBatra 不,我仍然有这个问题。不得不说半年没更新lib了。
    猜你喜欢
    • 2021-08-05
    • 2021-12-13
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2022-11-16
    • 2021-12-15
    • 2022-08-14
    相关资源
    最近更新 更多