我想将 Zbar 集成到我的应用程序中,但似乎无法弄清楚如何使用新的 Android Studio 来实现这一点。
我浏览了这个例子并复制了代码,没有任何问题。我遇到的问题是将库添加到我的项目中,我似乎无法弄清楚如何去做。有人可以带我过去吗?
我想将 Zbar 集成到我的应用程序中,但似乎无法弄清楚如何使用新的 Android Studio 来实现这一点。
我浏览了这个例子并复制了代码,没有任何问题。我遇到的问题是将库添加到我的项目中,我似乎无法弄清楚如何去做。有人可以带我过去吗?
我对 IntelliJ 或 Gradle 不是特别熟悉,但我已经弄清楚了。我用过ZBarAndroidSDK-0.2
。
libs/
文件夹的内容复制到项目的libs/
文件夹中。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 。
实际上,@Michael 的答案是正确的,它也已过时。现在,使用 gradle 您需要做的就是在 build.gradle 文件中添加以下行:
android {
...
sourceSets {
main.jniLibs.srcDirs = ['libs']
test.jniLibs.srcDirs = ['libs']
}
}
或直接将您的 .so 库放入:
src/main/jniLibs
这样,当您构建应用程序或库时,jni 库将被复制到目标 .jar/.aar 文件中。
如果您使用 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'))
}
我ZBarAndroidSDK-0.2
通过从示例文件夹中打开 CameraTest 项目在 Android Studio 2.0 中构建了示例。
它自动将项目从 eclipse 重组为 Android Studio。这就对了。