安卓手机运行Opencv动态库或普通c++函数配置指南

安卓运行Opencv动态库配置指南

0、关键点:

错误路线:

不需要单独安装jdk jre java环境

不需要单独编译opencv,这里使用官网已经编译好的libopencv_java4.so

正确方法:

如果想单独生成libtest.so,即你自定义的库,可以使用visual studio 2022 c++ 移动开发,新建android 动态共享库,编译生成的库可以有效使用。但是如果想用于编译opencv,此方法不可行。

1、必备软件:

Android Studio 官网下载

https://developer.android.google.cn/studio?hl=zh-cn

Opencv android 库 官网下载

https://opencv.org/releases/

2Android Studio 新建项目配置

新建一个有按钮的项目,便于测试。

引入cpp模块,该模块被编译后的库名字为libdemo.so

demo为项目名字。

在FirstFragment页面中有一个按钮,点击按钮将会执行我们的c++ 函数testHello

请在该类中加入红框中的代码。

请在demo.cpp 中加入以下所有代码,一个一个敲,不要漏。

配置CMakeLists.txt

先把头文件放置于正确位置

请在app/src/main文件夹内创建jniLibs文件夹,并在其内新建arm64-v8a

1、include 放入 cpp  文件夹内

2、libopencv_java4.so 放入jniLibs/arm64-v8a/中

配置CMakeLists.txt

#这里是导入的外部库的内容

include_directories(./include) 含义为头文件目录为CMakeLists.txt所在目录下的include中

add_library(opencv_java4 SHARED IMPORTED) 含义为明确导入libopencv_java4.so 的共享库

set_target_properties(opencv_java4

        PROPERTIES IMPORTED_LOCATION

        F:/01-Projects/01-Android/demo/app/src/main/jniLibs/arm64-v8a/libopencv_java4.so

        )含义为指定导入的库的路径,请用绝对路径,一定是正斜杠,不要加引号

add_library(${CMAKE_PROJECT_NAME} SHARED

    demo.cpp)含义为生成共享库,源代码为demo.cpp,后面可以加入你想要的其它源文件

target_link_libraries(${CMAKE_PROJECT_NAME}

android

opencv_java4

    log)含义为将android库加入目标库,加入opencv_java4,加入log库

最后一步,配置build.gradle(module.app)

cmake {

                cppFlags ''

                arguments "-DANDROID_STL=c++_shared"

含义为解决编译能通过但是运行时找不到libc++_shared.so库

            }

        ndk{

            abiFilters "arm64-v8a"

含义为解决,生成的库不是有效的elf,这里指定编译为64位arm库

        }

如果有这种情况,请点击sync now

先打开android studio 后,手机先进入开发人员模式,

将手机插入电脑,此时会显示手机型号, 手机提示请选择允许调试。

打开logcat,点击手机上的按钮,将有如下显示。

打开生成的apk,将会有如下文件结果,证明成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

同素法师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值