Android Studio 0.2.6和ZBar项目设置

时间:2013-09-01 07:09:48

标签: android zbar

我正在使用最新的Android Studio 0.2.6和最新的ZBar Android SDK。到目前为止我做了什么:

  1. 创建了一个名为QRTest的全新项目
  2. 在我的项目
  3. 中创建了一个名为libs的文件夹
  4. 将Zbar libs目录的内容放入我的项目文件夹
  5. 右键单击项目中的zbar.jar文件并添加为库
  6. 在我的build.gradle文件中,编辑它以便现在:

    依赖{    编译'com.android.support:support-v4:13.0.0'    编译文件('libs / zbar.jar') }

  7. 基本上将示例代码从ZBar android SDK示例复制到我自己的项目中。
  8. 项目编译并运行正常(0个错误,0个警告),但在运行时崩溃。日志显示:
  9.   

    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?并且它不起作用。

    enter image description here

2 个答案:

答案 0 :(得分:12)

解决方案:

  1. 将zbar.jar添加到app / libs

  2. 在src / main下创建一个名为“jniLibs”的文件夹-Java Native Interface(JNI),并将文件夹armeabi-v7a,armeabi和x86复制到src / main / jniLibs中。

  3. 文件结构如下:

      

    的src /主/ jniLibs / armeabi-V7A
      的src /主/ jniLibs / armeabi
      的src /主/ jniLibs / 86

    1. 转到文件>项目结构> app>依赖性>将support-v4添加到项目中

答案 1 :(得分:3)

您应该将* .so库添加到项目中。如果您使用Android Studio和Gradle,它有点复杂,因为您需要将库打包到jar中。在这里查看我的答案:ZBar - QR Code Scanner, crashing in Android Studio以查看更多详细信息。