簡體   English   中英

獲得支持NDK的OpenCV可在Android Studio中使用

[英]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-libsbuild.gradle文件是啟動具有第三方依賴項的項目的好地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM