OpenCV无法加载所需的库(面部检测)

时间:2016-01-26 18:57:58

标签: android c++ opencv android-ndk

我正在使用面部检测开放cv for android sample。

构建时没有错误,但是在部署示例时,我得到运行时错误

java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1940]: 150 could not load needed library 'libopencv_java3.so' for 'libdetection_based_tracker.so' (load_library[1095]: Library 'libopencv_java3.s0' not found)

我已将ndk添加到项目中,并将open cv库与示例链接。

2 个答案:

答案 0 :(得分:0)

尝试添加System.loadLibrary("opencv_java3");。它对我有用

答案 1 :(得分:0)

您收到此错误是因为android无法在/ jniLibs 文件夹中找到libdetection_based_tracker.so

解决方案是

  1. / jniLibs
  2. 中的opencv-sdk复制 native / libs 文件夹
  3. 在jni文件夹中创建Android.mk文件和Application.mk文件
  4. 复制build.gradle中的以下行
  5. sourceSets.main {

    jni.srcDirs = [] //disable automatic ndk-build call
    jniLibs.srcDir 'src/main/jniLibs'
    

    }

    buildTypes {...} 并添加

    defaultConfig {...

    ndk{
        moduleName "libdetection_based_tracker"
    }
    

    }

    4.add libdetection_based_tracker.so到jniLibs