android studio配置C++的opencv环境

第一步,打开android studio,点击file,找到Project Structure 打开选择SDK location。确定好androidSDK,NDK和jdk的路径,确保没有问题后再进行后续操作,如果有缺失,需要先安装好。

android studio支持语言 android studio支持c++吗_android

如图这是安装的路径,要按照自己的安装路径配置

android studio支持语言 android studio支持c++吗_c++_02

第二步,导入opencv,需要下载opencv-android-sdk,在opencv的官网下载android版即可。
官网网址:
https://opencv.org/releases/android studio支持语言 android studio支持c++吗_c++_03

下载完成后解压,然后在AS中点击file->new->import Moudle

android studio支持语言 android studio支持c++吗_android studio支持语言_04


android studio支持语言 android studio支持c++吗_gradle_05

如图,选择自己的D:\OpenCV-android-sdk\sdk\java的路径,点击next,再点击finish。

android studio支持语言 android studio支持c++吗_android_06

这时可以看见opencv已经导入项目里了,如果要运行C++,还需要复制一些opencv的依赖库,将D:\OpenCV-android-sdk\sdk\native\jni目录下的include复制到app下的libs文件夹下。

再将D:\OpenCV-android-sdk\sdk\native\libs目录下的arm64-v8a,armeabi-v7a, x86, x86_64复制到app的libs文件夹下。

然后在点击file,找到Project Structure。如图选择Dependencies->app->左上角“+”,选择Module Dependency。如图选择opencvlibrary并确定,然后打开app下的build.gradle,最下面的dependencies中多了implementation project(path: ‘:openCVLibrary340’)这句话就说明成功了。

android studio支持语言 android studio支持c++吗_android studio支持语言_07


android studio支持语言 android studio支持c++吗_gradle_08

接下来需要修改几个文件
gradle.properties
app/CMakeList.txt
app/build.gradle
openCVLibrary340/build.gradle
openCVLibrary340/src/main/AndroidManifest.xml
首先是app/CMakeList.txt,如图:修改两个地方,第一个是修改cpp的地址,第二个是加上OpenCV_java3,因为我用的是opencv3系列,所以是java3,如果是4系列,就是java4,然后加上下面这些代码

set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")

set(distribution_DIR ../../../../libs)
include_directories(libs/include)

add_library(OpenCV_java3 SHARED IMPORTED )
set_target_properties(  OpenCV_java3
                        PROPERTIES IMPORTED_LOCATION
                        ${distribution_DIR}/${ANDROID_ABI}/libopencv_java3.so
                        )

android studio支持语言 android studio支持c++吗_opencv_09


android studio支持语言 android studio支持c++吗_gradle_10


android studio支持语言 android studio支持c++吗_android studio支持语言_11

然后是app/build.gradle文件,如图:修改cmake里面的内容以及添加一个sourceSets,修改CMakeList.txt的路径。

android studio支持语言 android studio支持c++吗_c++_12


android studio支持语言 android studio支持c++吗_android studio支持语言_13

然后修改openCVLibrary340/build.gradle,将如下的版本号修改为和app/build.gradle一样的版本号。

android studio支持语言 android studio支持c++吗_android studio支持语言_14


android studio支持语言 android studio支持c++吗_android studio支持语言_15

修改openCVLibrary340/src/main/AndroidManifest.xml

android studio支持语言 android studio支持c++吗_android studio支持语言_16

注释掉最下面的一行。
修改gradle.properties
在gradle.properties里面加上一行

android.useDeprecatedNdk=true

android studio支持语言 android studio支持c++吗_c++_17

最后在cpp文件中测试opencv的代码:如图随便申明了一些变量,然后点击编译,打包,不报错就可以在
E:\Android\0316Demo2\app\build\intermediates\merged_native_libs\debug\out\lib这个位置下找到打包好的so文件。

android studio支持语言 android studio支持c++吗_opencv_18


android studio支持语言 android studio支持c++吗_opencv_19

android studio支持语言 android studio支持c++吗_android_20