一、环境配置
opencv官网下载androidSDK
官网链接
我下载的是opencv4.5.5androidsdk,要与c++的opencv版本对应
新建一个JNI项目
C++版本我用的是C++11
导入SDK里的资源文件
两个文件夹合并到libs里,复制到cpp文件夹下,如果项目结构和我的不一样应该是androidstudio版本问题
sdk>natave>jni文件夹里的include文件
sdk>natave里的so文件
sdk>batave>staticlibs里的so文件和.a文件
我用的是arm64 -v8a版本, libobjRec.so是我自己的so库后面识别用的,和环境配置没关系
CMakeLists.txt文件配置(最后有完整的CMakeLists文件文档)
完整的CMakeLists.txt
# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/add-native-code.html
# Sets the minimum version of CMake required to build the native library.
cmake_minimum_required(VERSION 3.18.1)
# Declares and names the project.
project("opencv455")
include_directories(include)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}")
# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# You can define multiple libraries, and CMake builds them for you.
# Gradle automatically packages shared libraries with your APK.
#对每一个静态库a文件和动态库so文件进行配置,动态库用SHARED,静态库用STATIC
add_library(libobjRec SHARED IMPORTED )
set_target_properties(libobjRec PROPERTIES
IMPORTED_LOCATION "${libs}/${ANDROID_ABI}/libobjRec.so")
add_library(libopencv_calib3d STATIC IMPORTED )
set_target_properties(libopencv_calib3d PROPERTIES
IMPORTED_LOCATION "${libs}/${ANDROID_ABI}/libopencv_calib3d.a")