Android Studio - 应用对模块的依赖,(OpenCv 模块)
Android Studio - App dependency on module, (OpenCv module)
我正在努力将 OpenCV 添加到我的项目中。我已将该模块添加到我的项目中(文件 -> 新建 -> 导入模块)并添加 java 文件夹,将其重命名为 OpenCV (https://sourceforge.net/projects/opencvlibrary/files/4.5.2/)
然后我同步了模块的 gradel 文件夹,但是当我尝试让我的应用程序依赖于 opencv 模块时,我找不到它。
非常感谢您提供一些意见,显然,我错过了一步。我是 android 开发的新手,如有任何帮助,我们将不胜感激。
好的。您已从 https://opencv.org/releases/ 下载 SDK。然后你只需要导入它并使用 CMake link 它。
首先,您必须创建一个 JNI 项目。如您所知,OpenCV 是一个 C++ 库。
然后,导入SDK,File > New > Import Module…
然后选择OpenCV SDK中的“sdk”文件夹。
打开setting.gradle,添加这段代码告诉项目你有一个opencv模块。
include "opencv"
project(":opencv").projectDir = file("sdk")
编辑“app”文件夹下的build.gradle,在您的OpenCV原生代码所在的CMake中添加一个OpenCV_DIR参数。
arguments "-DOpenCV_DIR=" + file('../sdk').absolutePath + "/native/jni",
"-DANDROID_TOOLCHAIN=clang",
"-DANDROID_STL=c++_shared"
dependences {
...
implementation project(':opencv')
}
在app/src/main/cpp/CMakeLists.txt中添加代码告诉CMake安装OpenCV模块
set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "")
message(STATUS "ANDROID_ABI=${ANDROID_ABI}")
find_package(OpenCV REQUIRED COMPONENTS ${ANDROID_OPENCV_COMPONENTS})
target_link_libraries(${PROJECT_NAME} ${ANDROID_OPENCV_COMPONENTS})
完成。您现在可以使用它了。
我正在努力将 OpenCV 添加到我的项目中。我已将该模块添加到我的项目中(文件 -> 新建 -> 导入模块)并添加 java 文件夹,将其重命名为 OpenCV (https://sourceforge.net/projects/opencvlibrary/files/4.5.2/)
然后我同步了模块的 gradel 文件夹,但是当我尝试让我的应用程序依赖于 opencv 模块时,我找不到它。
非常感谢您提供一些意见,显然,我错过了一步。我是 android 开发的新手,如有任何帮助,我们将不胜感激。
好的。您已从 https://opencv.org/releases/ 下载 SDK。然后你只需要导入它并使用 CMake link 它。
首先,您必须创建一个 JNI 项目。如您所知,OpenCV 是一个 C++ 库。
然后,导入SDK,File > New > Import Module…
然后选择OpenCV SDK中的“sdk”文件夹。
打开setting.gradle,添加这段代码告诉项目你有一个opencv模块。
include "opencv"
project(":opencv").projectDir = file("sdk")
编辑“app”文件夹下的build.gradle,在您的OpenCV原生代码所在的CMake中添加一个OpenCV_DIR参数。
arguments "-DOpenCV_DIR=" + file('../sdk').absolutePath + "/native/jni",
"-DANDROID_TOOLCHAIN=clang",
"-DANDROID_STL=c++_shared"
dependences {
...
implementation project(':opencv')
}
在app/src/main/cpp/CMakeLists.txt中添加代码告诉CMake安装OpenCV模块
set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "")
message(STATUS "ANDROID_ABI=${ANDROID_ABI}")
find_package(OpenCV REQUIRED COMPONENTS ${ANDROID_OPENCV_COMPONENTS})
target_link_libraries(${PROJECT_NAME} ${ANDROID_OPENCV_COMPONENTS})
完成。您现在可以使用它了。