title: Google ML Kit: couldn't find "libbarhopper_v2.so"
body: <p>I recently changed my old barcode/QR scanning library in favor of the <a href="https://developers.google.com/ml-kit/vision/barcode-scanning" rel="noreferrer">Google ML Kit for barcode scanning</a>, and since I did I am receiving some new crash reports through crashlytics that I didn't have before.</p>
  <blockquote>
  <p>Fatal Exception: java.lang.UnsatisfiedLinkError:
  dalvik.system.PathClassLoader[DexPathList[[zip file
  &quot;/data/app/com.my.app-Q4EYyt2jmFlLaZ-mHL-J5A==/base.apk&quot;],nativeLibraryDirectories=[/data/app/com.my.app-Q4EYyt2jmFlLaZ-mHL-J5A==/lib/arm64,
  /system/lib64, /vendor/lib64, /product/lib64]]] couldn't find
  &quot;libbarhopper_v2.so&quot;
  at java.lang.Runtime.loadLibrary0(Runtime.java:1011)
  at java.lang.System.loadLibrary(System.java:1660)
  at com.google.android.libraries.barhopper.BarhopperV2.(BarhopperV2.java:5)
  at com.google.mlkit.vision.barcode.zza.a_(zza.java:7)
  at com.google.mlkit.vision.barcode.internal.zzf.b(zzf.java:17)
  at com.google.mlkit.common.sdkinternal.ModelResource.zza(ModelResource.java:1)
  at com.google.mlkit.common.sdkinternal.zzl.run(zzl.java:1)
  at com.google.mlkit.common.sdkinternal.zzp.run(zzp.java:3)
  at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(MlKitThreadPool.java:19)
  at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zza(MlKitThreadPool.java:1)
  at com.google.mlkit.common.sdkinternal.zzh.run(zzh.java:1)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
  at java.lang.Thread.run(Thread.java:784)</p>
  </blockquote>
  <blockquote>
  <p>Fatal Exception: java.lang.UnsatisfiedLinkError:
  dalvik.system.PathClassLoader[DexPathList[[zip file
  &quot;/data/app/com.my.app-Y8cCSVtTMYVdnQQovlR0cw==/base.apk&quot;],nativeLibraryDirectories=[/data/app/com.my.app-Y8cCSVtTMYVdnQQovlR0cw==/lib/arm,
  /system/lib, /vendor/lib]]] couldn't find &quot;libbarhopper_v2.so&quot;
  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 com.google.android.libraries.barhopper.BarhopperV2.(BarhopperV2.java:5)
  at com.google.mlkit.vision.barcode.zza.a_(zza.java:7)
  at com.google.mlkit.vision.barcode.internal.zzf.b(zzf.java:17)
  at com.google.mlkit.common.sdkinternal.ModelResource.zza(ModelResource.java:1)
  at com.google.mlkit.common.sdkinternal.zzl.run(zzl.java:1)
  at com.google.mlkit.common.sdkinternal.zzp.run(zzp.java:3)
  at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(MlKitThreadPool.java:19)
  at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zza(MlKitThreadPool.java:1)
  at com.google.mlkit.common.sdkinternal.zzh.run(zzh.java:1)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
  at java.lang.Thread.run(Thread.java:919)</p>
  </blockquote>
  <p>In short it all comes down to this <em>couldn't find &quot;libbarhopper_v2.so&quot;</em> error.</p>
  <p>Anyone knows how to fix this?</p>
  <p>============</p>
  <p><strong>EDIT:</strong> List of affected devices:</p>
  <ul>
  <li>Samsung Galaxy A6, Android 10</li>
  <li>Samsung Galaxy J7 Max, Android 8.1.0</li>
  <li>Xiaomi Redmi Go, Android 8.1.0</li>
  <li>Samsung Galaxy Grand Prime, Android 5.1.1</li>
  <li>Motorola Moto G (2nd Gen)</li>
  <li>OPPO A33w, Android 5.1</li>
  <li>Starmobile Play Plus</li>
  <li>Samsung Galaxy J2 Pro, Android 6.0.1</li>
  <li>Huawei Y3III, Android 6.0</li>
  <li>Huawei GR5, Android 6.0.1</li>
  <li>Motorola Moto X Play, Android 7.1.1</li>
  <li>Huawei G Elite Plus, Android 7.0</li>
  <li>Samsung Galaxy J6, Android 9</li>
  <li>Samsung Galaxy J7 Prime, Android 7.0</li>
  <li>Lenovo Vibe k6, Android 7.0</li>
  <li>Wiko Pulp Fab 4G, Android 5.1.1</li>
  </ul>