在Android Studio中使用非自由(OpenCV C+;+;)库

在Android Studio中使用非自由(OpenCV C+;+;)库,opencv,android-studio,opencv4android,Opencv,Android Studio,Opencv4android,我试图在我的应用程序中加入sift特征检测器来识别捕获的图像。因为我的模型是使用sift描述符训练的,所以我别无选择,只能将其用于检索目的。我按照和的教程构建了我的libopencv_java,libnonfree.so文件。我将它们添加到我的testProject\app\src\main\jniLibs文件夹中。我添加了#include。当我向代码中添加SiftFeatureDetector时,它显示了一个错误。我看到的所有示例都谈到在eclipse中包含这个库,但没有提到android s

我试图在我的应用程序中加入sift特征检测器来识别捕获的图像。因为我的模型是使用sift描述符训练的,所以我别无选择,只能将其用于检索目的。我按照和的教程构建了我的
libopencv_java
libnonfree.so
文件。我将它们添加到我的testProject\app\src\main\jniLibs文件夹中。我添加了
#include
。当我向代码中添加
SiftFeatureDetector
时,它显示了一个错误。我看到的所有示例都谈到在eclipse中包含这个库,但没有提到android studio。有人能给我指一下正确的方向吗。我正在包括我的
cmakeList.txt

#设置生成本机应用程序所需的CMake的最低版本
#图书馆。您应该保留默认值,或者只传递
#值为3.4.0或更低。
cmake_最低要求(版本3.4.1)
include_目录(C:/OpenCV android sdk/sdk/native/jni/include)
添加库(lib\u opencv共享导入)
设置\u目标\u属性(导入的lib\u opencv属性\u位置${CMAKE\u CURRENT\u SOURCE\u DIR}/src/main/jniLibs/${ANDROID\u ABI}/libopencv\u java.so)
include_目录(C:/opencvandroid sdk/sdk/native/jni/include/opencv2/nonfree)
添加库(库非自由共享导入)
设置\u目标\u属性(lib\u非自由
导入的属性(位置${CMAKE\u CURRENT\u SOURCE\u DIR}/src/main/jniLibs/${ANDROID\u ABI}/libnonfree\u java.so)
#创建并命名库,将其设置为静态
#或共享,并提供其源代码的相对路径。
#您可以定义多个库,CMake为您构建它。
#Gradle会自动将共享库与APK打包。
添加库(#设置库的名称。
本机库
#将库设置为共享库。
共享
#提供源文件的相对路径。
#与源文件位于同一位置的关联头文件
#文件将自动包括在内。
src/main/cpp/native-lib.cpp)
#搜索指定的预构建库并将路径存储为
#变数。因为系统库包含在搜索路径中
#默认情况下,您只需要指定公共NDK库的名称
#您要添加。CMake验证库是否在之前存在
#完成它的构建。
find_library(#设置路径变量的名称。
日志库
#指定要创建的NDK库的名称
#你想让CMake定位。
日志)
#指定CMake应链接到目标库的库。你
#可以链接多个库,例如在中定义的库
#生成脚本、预构建的第三方库或系统库。
目标链接库(#指定目标库。
本机库
lib_opencv
自由非自由
应用胶
#将目标库链接到日志库
#包括在NDK中。

${log lib})
我知道已经很久了。你解决过这个问题吗。我提出了一个类似的问题: