文件 > 新建 > 导入模块...
,然后选择您下载的OpenCV文件夹中的/sdk
目录。给它一个有意义的名称,等待过程完成:您选择的目录应该已经复制到项目根目录中,与默认的/app
目录处于同一级别;文件 > 项目结构...
),然后进入依赖项
(在左侧),点击app
,然后点击已声明的依赖项
选项卡中的+
图标(不是模块
选项卡中的那个);模块依赖项
,然后选择您之前导入的OpenCV SDK的复选框。现在您应该在其他依赖项列表中看到它,所以点击应用
和确定
退出项目结构;build.gradle
文件,复制compileSdkVersion
、minSdkVersion
和targetSdkVersion
的值,然后将它们粘贴到OpenCV模块的build.gradle
文件中,替换默认值,使它们完全匹配。您还可以将sourceCompatibility
和targetCompatibility
字段更新为JavaVersion.VERSION_1_8
;if (OpenCVLoader.initDebug()) {
Log.d("myTag", "OpenCV loaded")
}
app
级别的build.gradle
文件,在android块的末尾添加以下代码块:buildFeatures {
aidl = true
buildConfig = true
}
OpenCV版本4.5.3的sdk目录为"opencv/sources/modules/java/android_sdk"。在执行https://dev59.com/lFEG5IYBdhLWcg3wdujF#65571017中的每个步骤后,我遇到了一些错误,通过注释或删除'arguments "-DANDROID_STL=@ANDROID_STL@"'行(该行位于opencv模块的build.gradle文件中)来解决了这些错误。
externalNativeBuild {
cmake {
// arguments "-DANDROID_STL=@ANDROID_STL@"
targets "opencv_jni_shared"
}
}
我成功地在Android Studio中导入了OpenCV 4.5.2。这并不是很困难。关键是为CMake提供正确的OpenCV_DIR路径以安装OpenCV。
下载SDK https://opencv.org/releases/
通过文件 > 新建 > 导入模块来导入模块...
在setting.gradle中添加OpenCV模块
include "opencv"
project(":opencv").projectDir = file("sdk")
arguments "-DOpenCV_DIR=" + file('../sdk').absolutePath + "/native/jni",
"-DANDROID_TOOLCHAIN=clang",
"-DANDROID_STL=c++_shared"
implementation project(':opencv')
在你的应用程序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})