- 创建一个名为QRTest的全新项目。
- 在我的项目中创建了一个名为libs的文件夹。
- 将Zbar libs目录下的内容放入到我的项目文件夹中。
- 右键点击我的项目中的zbar.jar文件并添加为库。
- 在我的build.gradle文件中进行编辑,现在它应该是这样的:
- 基本上将ZBar android SDK示例代码复制到了我的项目中。
- 项目编译和运行都很好(没有错误,没有警告),但运行时会崩溃。日志显示:
dependencies { compile 'com.android.support:support-v4:13.0.0' compile files('libs/zbar.jar') }
09-01 16:06:02.026: W/dalvikvm(7050): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lnet/sourceforge/zbar/ImageScanner;
09-01 16:06:02.036: E/AndroidRuntime(7050): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1891]: 209 could not load needed library 'libiconv.so' for 'libzbarjni.so' (load_library[1093]: Library 'libiconv.so' not found)
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项目中。谢谢!另外请注意:我尝试修改我的build gradle到这里接受的答案:How to change libs directory in Gradle?但它没有起作用。