手把手教你android在已有的项目中添加JNI和opencv,并成功调用起c++代码库

本文详细介绍了如何将C++代码集成到Android项目中,包括创建C++ native工程、处理gradle配置、添加NDK支持、引入OpenCV库以及在Java中调用C++方法。同时,还分享了opencv库的下载、导入步骤和CMakeLists配置。最后提到了通过打包.so文件简化线上项目集成的过程。
摘要由CSDN通过智能技术生成

首先是创建一个C++的native的项目工程,为了把cpp文件和gradle配置添加到自己的项目中

native工程中有cpp这个目录,按照目录结构复制到自己的工程中,先运行native工程要先能跑的通,跑不通基本都是gradle之类的问题还有setting中的ndk和cmakes没有安装,安装一次我们自己的项目中也会有这个,NDK配置完要在project structure上添加ndk,不然会导致后续.cpp文件include不到opencv2的包

文件复制过来native-lib的名称要改,最后那个是在main中的方法。把main方法的

stringFromJNI和static {
    System.loadLibrary("native-lib");
}也放到自己的工程中

最后就是app gradle的配置,加上两处的externalNativeBuild添加上

到此,你的新项目只要能跑的起来,调用起JNI的stringFromJNI方法并显示出来说明JNI就基本配置好了,接下来是opencv的配置

首先是去官网下载opencv对应的android版本,压缩完打开opencv-4.3.0-android-sdk\OpenCV-android-sdk\sdk\native\libs这个目录下,把四个架构的so库放到自己的项目中,如果还没创建文件夹的就如图创建,再把opencv-4.3.0-android-sdk\OpenCV-android-sdk\sdk\native\jni目录下得include文件夹全部拷贝到如图目录下并创建opencv文件夹再配置CMakeLists

至此你在项目中能includeopencv的包就代表配置完成了,后续就是自己要做的操作了,我这边是有C++团队有写好的c++和.h文件,我的处理是直接把类放到cpp文件夹下,需要在CMakeLists中的add_library添加cpp的文件名称,需要调用c++里面的方法就用static放出来调用,但是这种调用不好,最好是适配c++的用指针的方法new调用,记得最后要返回bool的类型,不然不返回就会卡在里面黑屏不出来了,另外值得一提的是需要java的参数类型和c++的差异化较大需要自行百度去查,我这边传入string类型,c++需要的是char *类型,就需要我们在.cpp文件中做如下方法的转换就可以了

如果自己的线上项目要用又不想去搞这么多文件可以把native-lib的类名写好,里面代码测试好了去make project,这这个目录下会有两个so包,直接把这两个包放自己工程上就能调用起来了,省了很多的代码。

以上就是配置的全过程了,希望能帮到大家。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值