我想将Zbar集成到我的应用程序中,但似乎无法弄清楚如何使用新的Android Studio实现这一目标。
我查看了示例,并且没有任何问题地复制了代码。我遇到的问题是将libs添加到我的项目中我似乎无法弄清楚如何做到这一点。有人可以带我走过吗?
答案 0 :(得分:21)
我对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。
答案 1 :(得分:14)
实际上,@ Michael的答案是正确的,它也是过时的。现在,使用gradle所需要做的就是在build.gradle文件中添加以下行:
android {
...
sourceSets {
main.jniLibs.srcDirs = ['libs']
test.jniLibs.srcDirs = ['libs']
}
}
或直接将您的.so库放入:
的src /主/ jniLibs
这样,当您构建应用程序或库时,jni库将被复制到目标.jar / .aar文件中。
答案 2 :(得分: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'))
}
答案 3 :(得分:-2)
我在Android Studio 2.0中构建了ZBarAndroidSDK-0.2
示例,只需从示例文件夹中打开CameraTest项目即可。
它自动将项目从eclipse重组为Android Studio。这就对了。