VR/AR动手玩(三):Android使用jni调用opencv

虽然网上有不少资料,但大多是老版本的,新版本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目录复制到其他地方,请修改这里。
继续添加


                
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值