2016-05-28 245 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是开始使用第三方依赖项目的好地方。