我想將Zbar整合到我的應用程序中,但似乎無法弄清楚如何使用新的Android Studio來完成此操作。如何更改Gradle中的libs目錄?
我已經看過整個例子,並且已經複製了代碼而沒有任何問題。我遇到的問題是將庫添加到我的項目中,我似乎無法弄清楚如何去做。有人能通過它走過我嗎?
我想將Zbar整合到我的應用程序中,但似乎無法弄清楚如何使用新的Android Studio來完成此操作。如何更改Gradle中的libs目錄?
我已經看過整個例子,並且已經複製了代碼而沒有任何問題。我遇到的問題是將庫添加到我的項目中,我似乎無法弄清楚如何去做。有人能通過它走過我嗎?
其實,@邁克爾的回答是正確的,它也是過時的。現在,使用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/4226923。
使用Gradle 0.7.2+,你可以直接將你的本地庫放到'src/main/jniLibs'中,它會自動運行。 – shkschneider
@shkschneider你能詳細解釋一下嗎?你只需要將.so文件及其文件夾放入jniLibs /文件夾(jniLibs/armeabi/file.so)等,然後將zbar.jar放回libs /文件夾並將其添加到build.gradle文件中?謝謝 –
@JohnShelley正確:'.jar'轉到'libs','.so'轉到'jniLibs'。看到https://stackoverflow.com/a/22488155/603270 – shkschneider
如果您使用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'))
}
我已經從例如文件夾剛剛開放CameraTest項目建在Android Studio中2.0 ZBarAndroidSDK-0.2
例子。
它自動將項目從eclipse重構爲Android Studio。這就對了。
我也試圖將ZBar整合到我的應用程序中,並且這對我有用! –
你節省了我的一天,謝謝。 –