我正在使用最新的Android Studio 0.2.6和最新的ZBar Android SDK。到目前为止我做了什么:
在我的build.gradle文件中,编辑它以便现在:
依赖{ 编译'com.android.support:support-v4:13.0.0' 编译文件('libs / zbar.jar') }
09-01 16:06:02.026:W / dalvikvm(7050):例外 Ljava /郎/ UnsatisfiedLinkError;初始化时抛出 LNET / sourceforge的/ zbar和/图象扫描;
09-01 16:06:02.036: E / AndroidRuntime(7050):引起:java.lang.UnsatisfiedLinkError: 无法加载库:link_image [1891]:209无法加载所需 库'libiconv.so'为'libzbarjni.so'(load_library [1093]:Library 'libiconv.so'未找到)
09-01 16:06:02.036:E / AndroidRuntime(7050): at net.sourceforge.zbar.ImageScanner。(Unknown Source)
查看我的MainActivity中的代码,它似乎在这里消亡:
/* Instance barcode scanner */
scanner = new ImageScanner();
这似乎告诉我,不知怎的,我没有正确导入我的Zbar库文件。任何有关如何获得这个非常基本的例子的帮助将不胜感激!
请注意,如果我使用Android Studio从ZBar Android SDK示例导入新项目,它会编译并运行正常。但是,它使用的是旧的ant构建系统。我宁愿使用新的gradle构建系统,这就是为什么我要尝试将ZBar导入到一个全新的Android 0.2.6项目中。谢谢!
另一个注意事项:我尝试将我的构建gradle修改为接受的答案:How to change libs directory in Gradle?并且它不起作用。
答案 0 :(得分:12)
解决方案:
将zbar.jar添加到app / libs
在src / main下创建一个名为“jniLibs”的文件夹-Java Native Interface(JNI),并将文件夹armeabi-v7a,armeabi和x86复制到src / main / jniLibs中。
文件结构如下:
的src /主/ jniLibs / armeabi-V7A
的src /主/ jniLibs / armeabi
的src /主/ jniLibs / 86
答案 1 :(得分:3)
您应该将* .so库添加到项目中。如果您使用Android Studio和Gradle,它有点复杂,因为您需要将库打包到jar中。在这里查看我的答案:ZBar - QR Code Scanner, crashing in Android Studio以查看更多详细信息。