[英]Getting OpenCV with NDK support to work in Android Studio
我是openCV和android編程的新手,我想在我的項目中使用openCV。 現在我正試圖在我的android工作室中運行openCV的第二個教程,但我總是得到以下NDK錯誤:
Error:Execution failed for task ':openCVTutorial2MixedProcessing:compileDebugNdk'.
NDK未配置。 從http://developer.android.com/tools/sdk/ndk/下載NDK。然后在local.properties中添加ndk.dir = path /到/ ndk。 (在Windows上,請確保轉義反斜杠,例如C:\\ ndk而不是C:\\ ndk)
然后我看了互聯網,有些人建議我將這些添加到我的gradle.build文件中:
jniLibs.srcDirs = ['native-libs']
jni.srcDirs = [] //disable automatic ndk-build
添加這些后它工作,但我收到以下錯誤:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.opencv.samples.tutorial2-2/base.apk"],nativeLibraryDirectories=[/data/app/org.opencv.samples.tutorial2-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libopencv_java3.so"
這是我的gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "org.opencv.samples.tutorial2"
minSdkVersion 21
targetSdkVersion 23
ndk {
moduleName "mixed_sample"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets{main {jni.srcDirs = ['src/main/jni','src/main/jniLibs']
jniLibs.srcDirs = ['native-libs']
jni.srcDirs = [] //disable automatic ndk-build
}}
}
dependencies {
compile project(':openCVLibrary310')
}
那么,你粘貼的代碼完全符合評論的內容:
jni.srcDirs = [] //disable automatic ndk-build
您沒有看到第一個錯誤是因為跳過了整個compileDebugNdk
步驟。 這意味着您的應用程序的NDK端未構建,這意味着APK中沒有OpenCV庫,這意味着Java無法加載它們,因此couldn't find "libopencv_java3.so"
。
您需要編寫一些邏輯來構建項目的C ++端。 目前有兩種方法可以做到這一點,其中最簡單的方法是引用NDK示例 ,該示例記錄了如何僅使用build.gradle構建和使用本機代碼。 來自hello-libs的build.gradle文件是啟動具有第三方依賴項的項目的好地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.