12

我想将 Zbar 集成到我的应用程序中,但似乎无法弄清楚如何使用新的 Android Studio 来实现这一点。

我浏览了这个例子并复制了代码,没有任何问题。我遇到的问题是将库添加到我的项目中,我似乎无法弄清楚如何去做。有人可以带我过去吗?

4

4 回答 4

21

我对 IntelliJ 或 Gradle 不是特别熟悉,但我已经弄清楚了。我用过ZBarAndroidSDK-0.2

  1. 将 ZBar SDKlibs/文件夹的内容复制到项目的libs/文件夹中。
  2. 修改您的 build.gradle(见下文)以确保 jar 和本机库包含在您的 APK 中。
  3. 要让 IntelliJ 了解 ZBar,请在项目结构中添加 zbar.jar。为此,请File > Project Structure > Libraries > + Sign > Java使用文件选择器转到并找到 zbar.jar。将其添加到您的项目中。

将以下内容添加到您的 build.gradle 中(确保保留您拥有的任何其他依赖项):

dependencies {
    compile files('libs/android-support-v4.jar')
    compile files('libs/zbar.jar')
}

task copyNativeLibs(type: Copy) {
    from(new File('libs')) { include '**' }
    into new File(buildDir, 'native-libs')
}

tasks.withType(Compile) { compileTask -> compileTask.dependsOn copyNativeLibs }

clean.dependsOn 'cleanCopyNativeLibs'

tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniDir new File(buildDir, 'native-libs')
}

我的 build.gradle 基于这个要点:https ://gist.github.com/khernyo/4226923 。

于 2013-06-07T21:10:54.613 回答
15

实际上,@Michael 的答案是正确的,它也已过时。现在,使用 gradle 您需要做的就是在 build.gradle 文件中添加以下行:

android {
...
  sourceSets {
    main.jniLibs.srcDirs = ['libs']
    test.jniLibs.srcDirs = ['libs']
  }
}

或直接将您的 .so 库放入:

src/main/jniLibs

这样,当您构建应用程序或库时,jni 库将被复制到目标 .jar/.aar 文件中。

于 2015-04-07T13:40:25.017 回答
3

如果您使用 gradle 1.1.0,那么您必须对@Michael 的答案进行一些修改。这是适用于我的 gradle 文件的修订代码。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile files('libs/zbar.jar')
}
task copyNativeLibs(type: Copy) {
    from(new File('libs')) { include '**' }
    into new File(buildDir, 'native-libs')
}
tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyNativeLibs }

clean.dependsOn 'cleanCopyNativeLibs'

tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniFolders = new HashSet<File>()
    pkgTask.jniFolders.add(new File(buildDir, 'native-libs'))
}
于 2015-05-17T09:30:26.080 回答
-2

ZBarAndroidSDK-0.2通过从示例文件夹中打开 CameraTest 项目在 Android Studio 2.0 中构建了示例。

它自动将项目从 eclipse 重组为 Android Studio。这就对了。

于 2015-12-14T10:46:29.960 回答