2016-05-28 221 views
0

我很新來openCV和android編程,我想在我的項目中使用openCV。現在我想在我的Android工作室運行的OpenCV的第2個教程,但我總是得到以下NDK錯誤:OpenCV與NDK支持在Android Studio工作

Error:Execution failed for task ':openCVTutorial2MixedProcessing:compileDebugNdk'. 

NDK not configured. Download the NDK from http://developer.android.com/tools/sdk/ndk/.Then add ndk.dir=path/to/ndk in local.properties. (On Windows, make sure you escape backslashes, e.g. C:\ndk rather than 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') 
} 

回答

0

嗯,你在粘貼代碼不正是評論說:

jni.srcDirs = [] //disable automatic ndk-build 

你沒有看到,第一個錯誤是因爲整個compileDebugNdk一步跳過。這意味着您的應用程序的NDK一側未構建,這意味着OpenCV庫中沒有包含在APK中,這意味着Java無法加載它們,因此couldn't find "libopencv_java3.so"

您需要編寫一些邏輯來構建項目的C++端。目前有幾種方法可以做到這一點,其中最簡單的方法是引用NDK samples,該文檔說明如何構建和使用只有build.gradle的本機代碼。 build.gradle file from hello-libs是開始使用第三方依賴項目的好地方。