ZBAR android ARM 64 找不到 "libiconv.so"

ZBAR android ARM 64 couldn't find "libiconv.so"

在 samsung galaxy s6 edge 上,我的应用程序在调用 zbar sdk 进行扫描时崩溃。我想是因为我没有arm64版本的zbar。

崩溃日志到此结束:

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/.../base.apk"],nativeLibraryDirectories=[/data/app/.../lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libiconv.so"
at java.lang.Runtime.loadLibrary(Runtime.java:366)

我在我的项目中看到我没有 zbar 的 arm64 jni 库 这有关系吗? 如果是这样我在哪里可以得到 libiconv.so libzbarjni.so 对于 arm64 ?

对于libiconv

获取 libiconv 源,并制作一个 Android.mk 生成文件。查看此站点 (http://groups.google.com/group/android-ndk/browse_thread/thread/012d679319e4ea6e?pli=1) 以获取为 libiconv 和 Android 预先编写的 makefile。获得 Android.mk 文件后,您可以使用 ndk-build 脚本进行构建。

对于libzbarjni

http://www.blackdogfoundry.com/blog/?p=139

所以终于从这里找到了 zbar 64 位:

https://github.com/SkillCollege/ZBarAndroidSDK/tree/master/ZBarScanProjAll/libs

在arm64-v8a下找到。我所要做的就是重命名 so 文件以匹配我的项目。

我在 arm64-v8a 中下载了 iconv.so 和 libZBarDecoder.so。

  • libZBarDecoder.so 重命名为 libzbarjni.so
  • Zip 文件并将其重命名为 iconv.jar(因为 "System.loadLibrary("iconv") 在我的项目中").

终于成功了。谢谢 Noam Segev。

https://github.com/SkillCollege/ZBarAndroidSDK/tree/master/ZBarScanProjAll/libs