虽然网上有不少资料,但大多是老版本的,新版本Android Studio对ndk作了改进,采用cmake构建,简单了许多。下面示例基于Android Studio2.3版本,关于如何编译请参考上一篇http://blog.csdn.net/efanlee/article/details/69944267
一、新建工程
1、创建CvNative工程,注意要选上include C++ support
在定制Activity时,我习惯把下面这个勾去掉,直接采用简单的Activity基类。
C++设置页面中,将下面两项勾选,否则构建会失败。当然,后面再改CMakeLists.txt也是等效的。
2、不同于java方式需要导入一个module,jni方式只要把libs目录拷到项目里。将编译好的opencv4android/sdk/native/libs目录整个复制到CvNative\app\src\main目录下,并改名为jniLibs
3、将opencv4android/sdk/native/jni/include目录整个复制到CvNative下
4、修改app的gradle,在defaultConfig内添加ndk的配置(ndk部分),主要是指定编译哪些abi:
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions"
}
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
}
注意刚才勾选的rtti和exceptions在这里体现了,如果需要,还可以加上-std=gnu++11。修改完后,同步一下配置。
5、修改CMakeLists.txt文件,如果是Android视图,应该在External Build Files下。
这一步主要是为了增加头文件路径,以及库文件。
在cmake_minimum_required之后,增加下面配置:
include_directories(../include)
由于CMakeLists.txt文件在CvNative/app目录下,所以../include表示CvNative/include目录,即上面步骤3中复制的include路径——如果你把include目录复制到其他地方,请修改这里。
继续添加