Zbarをアプリケーションに統合したいのですが、新しいAndroid Studioを使用してこれを実現する方法を理解できないようです。
例を確認し、問題なくコードをコピーしました。私が抱えている問題は、プロジェクトにライブラリを追加することです。それを行う方法がわからないようです。誰かが私にそれを教えてもらえますか?
実際、@ Michaelの答えは正しいですが、それも時代遅れです。ここで、gradleを使用する必要があるのは、build.gradleファイルに以下の行を追加することだけです。
Android {
...
sourceSets {
main.jniLibs.srcDirs = ['libs']
test.jniLibs.srcDirs = ['libs']
}
}
または、.soライブラリを次の場所に直接配置します。
src/main/jniLibs
このように、アプリケーションまたはライブラリをビルドすると、jniライブラリが宛先の.jar /.aarファイルにコピーされます。
私は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/422692 。
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'))
}