Android studio配置OpenCV的JNI接口,实现C++代码编程
目录
四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件
一、下载OpenCV-android-sdk
OpenCV官网地址:https://opencv.org/
点击Library-->Releases,下载Android版本,解压得到 OpenCV-android-sdk文件夹。
二、新建项目
打开Android studio, File-->New-->New Project,选择最后一项Native C++
进入配置页面,命名为test,点击Next
C++标准根据自身需求设置,这里我选择默认工具链,点击Finish
项目建成后,在真机/模拟器上运行,试一下效果
三、导入OpenCV包
点击File-->New-->Import module,选择刚刚解压的OpenCV-android-sdk文件夹,找到sdk,
修改Module name为opencv,点击Finish
点击完Finish之后,会报错,需要把红框中的代码注释掉,蓝框中的Sdk版本型号与app下的build.gradle(绿框)的Sdk版本型号一致。
点击File-->Project Structure-->Dependencies-->app-->Module Dependency
勾选opencv,点击OK
四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件
把OpenCV-android-sdk下的OpenCV-android-sdk/sdk/native/jni/include文件夹拷贝到你项目
class="lazy" data-src/main/cpp下面。
把OpenCV-android-sdk下的OpenCV-android-sdk/sdk/native/libs文件夹拷贝到你项目class="lazy" data-src/main/
下面,并修改名字为JniLibs。
五、修改Cmake文件
打开CMakeLists.txt文件,添加如下代码(推荐复制),修改的地方只有最上面和最下面两部分,中间部分为系统生成的内容,没有改动。
# 设置include文件夹的地址include_directories(${CMAKE_SOURCE_DIR}/include)add_library(libopencv_java4 SHARED IMPORTED)set_target_properties(libopencv_java4 PROPERTIES IMPORTED_LOCATION E:/test/app/class="lazy" data-src/main/JniLibs/${ANDROID_ABI}/libopencv_java4.so)
把红框里的地址改成你的JniLibs地址(四.2创建的文件夹地址)
在最下面的target_link_libraries添加libopencv_java4
六、配置app的build.gradle文件
添加的第一部分
externalNativeBuild { cmake { cppFlags '' arguments "-DANDROID_STL=c++_shared" } } ndk { abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' }
2、添加的第二部分
注意:jniLibs.class="lazy" data-srcDirs = [‘libs’] 千万不要写为:jniLibs.class="lazy" data-srcDirs = [class="lazy" data-src/main/JniLibs’] 否则程序会报错
sourceSets { main { jniLibs.class="lazy" data-srcDirs = ['libs'] } } splits { abi { enable true reset() include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for universalApk true //generate an additional APK that contains all the ABIs } }
3、添加的第三部分
project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9] android.applicationVariants.all { variant -> variant.outputs.each { output -> output.versionCodeOverride = project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) * 1000000 + android.defaultConfig.versionCode } }
七、测试
先构建,点击Make Project(小锤子),然后打开native-lib.cpp文件,先试着引入一下包,输入
#include
包含OpenCV的头文件不报红就配置成功了,如下:
恭喜你,配置成功了,可以开始在Android平台下用C++来开发opencv代码了。
来源地址:https://blog.csdn.net/weixin_51244415/article/details/131088634
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341