Android Studio配置CMakeLists.txt来加载第三方SO库

Android Studio 下Cmake的CMakeLists.txt文件配置 1.生成多.so模式,如图目录结构,需要单独每个模块生成自己的.so 外层CMakeLists.txt Android Studio中, 具体Module中的build.gradle中先指定这个文件的位置 cmake_minimum_required(VERSION 3.4.1) #指定编译器版本 add_subdirectory(lic)#指定子文件夹 add_subdirec... 阅读详情

要使用第三方库首先当然是加载第三方库的头文件

使用include_directories来包含第三方头文件,多个路径用空格隔开,添加在cmake_minimum_required的下面

include_directories(xxx/include ../xxx)

 例如

include_directories(../../../ThirdParty/ffmpeg/include ../../../src)

 接下来添加SO文件, 比如添加libXXX.so则

add_library( XXX
        SHARED
        IMPORTED)
set_target_properties( XXX
        PROPERTIES IMPORTED_LOCATION
        ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libXXX.so)

最后在target_link_libraries()中添加的你XXX

target_link_libraries( # Specifies the target library.

        XXX

        # Links the target library to the log library
        # included in the NDK.
        ${log-lib})

 

Android studio中NDK开发(二)——使用CMake引入第三方so库及头文件 一、前言 通常来说,第三方提供的so库以及头文件都没有没有引入jni.h头文件。所以我们在导入第三方so库以及头文件的时候需要手动的将其关联到官方的native-lib库中,关联成功后就可以在native-lib中include进第三方头文件,引进头文件成功后就可以在自定义的JNI接口中对第三方头文件中内容进行调用。 二、准备 第三方so库以及头文件 创建一个默认的NDKDemo(可按照CMak... 阅读详情

相关推荐

AndroidStudio使用Cmake编译armeabi-v7a,arm64-v8a的so库

CMakeLists.txt文件说明。

Vincent20111024的专栏 3962

Android studio 基于Cmake调用第三方so库 (非JNI规范)

需求:第三方so库,和头文件,但头文件非JNI格式,无法实现JNI的静态注册调用 实现工具:CMake 第一步:在SDKTools 里下载CMake; 第二步:配置app的build.gradle defaultconfig标签里添加 externalNativeBuild{ cmake{ cppFlags "" ...

LittleMonkey的博客 1792

Android Studio 2024编译so库并在另一个Jni项目中引用

然后在需要导入so库的项目中创建libs目录 ,并将上面截图中,obj目录下的所有目录及其子文件复制到libs目录中。然后在app mudole的build.gradle文件的android tag下配置CmakeLists.txt。然后将在app->src->main目录下创建cpp目录,并将so库的头文件复制到cpp目录下。根据app需要运行的目标设备的cpu架构,配置生成哪种类型的so库。编译完成后,会在build->intermediates->cxx->obj目录下生成动态库的so文件。

c1312052256的博客 550

Android加载第三方so库

演示了java调C++,那么so文件能否复用到别的项目了?这次我们尝试用上一篇文章生成的so库,调用里面的方法。

知道这个有什么用? 1747

Android so库开发——Android Studio调用so库(二)

在中已经创建了自己的so库,这是一个JNI规范的so库,可以直接将so库放到libs中,并按照上面文章中MainActivity中的调用方法使用。1、build.gradle(app)配置2、加载so库中方法在Sudio中方法名虽然显示红色,但不影响使用。3、Activity中调用方法。

小旭的专栏 8029

在Windows11下安装完Ubuntu20.04双系统后配置环境的过程

在Windows11下安装完Ubuntu20.04双系统后配置环境的过程 1.NVIDIA驱动检测及安装 2.Anaconda的安装 3.安装cuda、cudnn、pytorch 4.其他报错

aaaccc444的博客 2423

AndroidStudio之NDK开发CMake CMakeLists.txt编写入门

一、CmakeList的编写和参数详解  在linux 下进行开发很多人选择编写makefile 文件进行项目环境搭建,而makefile 文件依赖关系复杂,工作量很大,搞的人头很大。采用自动化的项目构建工具cmake 可以将程序员从复杂的makefile 文件中解脱出来。cmake 根据内置的规则和语法来自动生成相关的makefile 文件进行编译,同时还支持静态库和动态库的构建,

键盘的起始页 1万+

利用PV操作控制进程的并发进行---经典题解

前趋图 先理清楚前趋图中的逻辑关系:P1没有前驱,P2的前驱是P1,P3的前驱是P1、P2,P4的前驱是P2,P5的前驱是P3、P4。 前驱就是指只有在前驱进程完成后,该进程才能开始执行。由图可知,这里进程之间有6条有向弧,分别表示为P1→P2,P1→P3,P2→P3,P2→P4,P3→P5,P4→P5, 各个进程间的逻辑关系,那么我们需要设定6个信号量(S1、S2、S3、S4、S5、S6),利用PV操作来控制这些过程。 对于第一个空,P1执行完成之后,需要通知P2、P3可以开始,此处需要V(S

Yan Ka Kue的博客 6136

AndroidStudio开发jni调用第三方SO库

AndroidStudio开发jni调用第三方SO库 CMakeLists.txt 文件内容如下 SO库我放在app/src/main/jniLibs/armeabi cmake_minimum_required(VERSION 3.4.1) #工程路径 set(pathToProject C:/Users/jun/AndroidStudioProjects/dydemo

qq377366355的博客 1044

如何用python开发“跳一跳”游戏【附源码】

jump_start_time = pygame.time.get_ticks() # 记录跳跃开始时间。jump_duration = current_time - jump_start_time # 计算跳跃持续时间。current_time = pygame.time.get_ticks() # 获取当前时间。jump_velocity = -15 # 设置跳跃的初始速度。# 如果小球跳跃结束,重置跳跃状态。# 根据跳跃持续时间计算跳跃高度。# 移除超出屏幕的障碍物。

helloshili2011的博客 2495

为什么你的ESXI无法识别移动硬盘?一步步教你解决USB存储挂载问题

本文深入解析了ESXi无法识别移动硬盘的根本原因,并提供了从诊断到解决的完整方案。核心在于理解ESXi的USB Arbitrator服务机制,通过检查服务状态、内核设备识别及分区表,逐步定位问题。文章详细指导了如何禁用USB仲裁服务以在主机挂载USB存储,或将其直通给虚拟机,并针对大容量硬盘、USB 3.0兼容性等进阶问题给出了实用建议。

qq_27496129的博客 331

JNI动态编译c语言,android jni 使用别人编译好的c/c++动态so库-Go语言中文社区

别人写好的动态库,需要自己写jni包一层,这样就可以在java中调用这个库了。其实还有第二种方法,就是使用jna来调用,这样不用写jni,但是今天我们不讨论jna的用法。这里介绍如何在Android Studio中,编写jni调用他人的.so动态库。复制动态库到项目他人提供的库,需要包含头文件,和.so文件。先看一下我的项目主要目录:把他人提供的so库放在libs目录下,如图所示,我这里他人提供的...

weixin_39623620的博客 285

小白的MatSWMM使用心路(二)——用matlab修改INP文件参数/使用matlab查找txt内容并修改多行内容

说是修改inp,但是里面的内容大部分还是讲怎么修改txt的……(?)。包含如何找到需要的参数(关键字)位置,以及修改那个位置的txt这样的内容。希望能帮助大家吧……Matlab你要多出好用的功能啊!

weixin_44276743的博客 4530

Android studio使用CMake引入第三方so库及头文件

Android studio中NDK开发(二)——使用CMake引入第三方so库及头文件 一、前言 通常来说,第三方提供的so库以及头文件都没有没有引入jni.h头文件。所以我们在导入第三方so库以及头文件的时候需要手动的将其关联到官方的native-lib库中,关联成功后就可以在native-lib中include进第三方头文件,引进头文件成功后就可以在自定义的JNI接口中对第三方头文件中内...

mjfh095215的专栏 6528

使用cmd命令查看电脑是不是翻新机 如何查看自己电脑是不是翻新机

最近pdd啥的百亿补贴啊,什么品牌店啊,很多“假一赔十”,绝对“正品”都蹦出来了,很多人拿到以后,也上网查了各种鉴别方式,包括区分是不是翻新机之类的。本人亲自踩坑“pdd品牌店”,“假一赔十”,“绝对正品”等店铺,跟大家分享一下我得鉴别经验(说道分享鉴别经验了,大家也就不用好奇了,我肯定是买到翻新机了,mmp)。 第一步:准备好手机,开始录屏,没有完整的拆箱视频,可能不容易退货退款 第二步:拆箱,查看屏幕划痕(用手机闪光灯看,要不然看不清),然后查看屏幕有没有被擦过的痕迹 第三步:查看USB孔等插口有没有划

weixin_39417324的博客 1万+

低光照图像增强:从传统方法到深度学习

低光照图像增强:从传统方法到深度学习​ 人工智能,计算机视觉,大模型,AI,本文聚焦视觉模型的偏差与公平性问题,阐述了偏差在性别、种族、年龄等方面的表现及对医疗、司法、安防等领域的影响。分析了偏差源于数据采集与标注问题及算法局限。介绍了准确率差异等公平性评估指标、相关数据集和工具,还给出数据处理、算法改进、模型训练等避免歧视的策略,并附代码示例与实际案例,为提升视觉模型公平性提供多方面参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 2万+

Android studio的cMake编译生成.so库并调用

第一步:添加工具 在SDK Tools中勾选安装CMake、LLDB、NDK。 其中的LLDB是调试本地代码的工具,可以调试C++代码!!!第二步:创建一个最简单的官方demo,File——>New——>NewProject,选中最下方的Include C++ Support 这个项目是一个最简单是实用cMake编译c++生成.so的项目,此项目有几个关键点:1.在src/main/cpp中存在native-lib.cpp文件,它是提供对外接口的,之后我们调用时就是通过一个java类调用这个

L的博客 6791

【软件测试】人工智能(AI)在软件测试领域的应用

AI在软件测试领域的应用使测试过程更加自动化、高效和智能。它可以帮助测试团队减轻负担,更快地识别和修复问题,最终提高软件的质量和可靠性。随着AI技术的不断进步,未来AI在软件测试领域的应用将更加广泛和深入。

weixin_46453070的博客 4383

Android开发 JNI-调用第三方so库

本文介绍了Android开发中调用第三方so库的具体操作步骤,常见错误,以及完整的验证流程,仅供参考。

qq_34629725的博客 652

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Android Studio NDK中cpp代码链接第三方动态库libcrypro.so

一. 简介 使用场景:JNI代码中使用libcrypro.so库和libssl.so库,Android Studio版本是3.4.2。 Android系统中提供了libcrypro.so和libssl.so,存在/system/lib目录中,但是在NDK中并没有提供使用该库的头文件和库。不过openssl是开源的,能将其代码编译获得libcrypro.so和libssl.so,并且源码中提供头文件...

Denny_Chen_的博客 1856

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android Studio CMake搭建JNI,生成so和aar

前言 在Android工程里通过Java调C,需要JNI,而JNI生成so库只能在同包名下的同名Java中使用,故创建Library来生成并加载so,且生成aar提供给第三方应用使用。如有错误,望不吝指正。 一、生成so 1,创建工程,新建module作为jni的库工程,里面是Java和C之间的互调。 2,JNIUtils.java加载指定so名称,并且定义了c中要实现的方法供Java...

sky_cui的专栏 2198

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JNI开发之-CMake方式调用第三方so

jni cmake方式

jack22001的博客 2081

android studio 加载ffmpeg.so,Android studio使用已经编译好的ffmpeg .so库

一. 从C++返回hello world这一步是android studio自带功能新建工程时选择native c++即可Screenshot from 2020-12-10 00-41-57.png做一个简单的记录build.gradle3处修改android {compileSdkVersion 29buildToolsVersion "29.0.3"defaultConfig {minSd...

weixin_39928648的博客 376

android studio中把c/c++文件编译成.so库(二)

最近的项目涉及到JNI编程,经过一段时间的JNI编程之后,终于完美弄完了。所以,把在android studio中编译c/c++文件成.so库的过程记录一下。 在Android studio中使用cmake编译 .so库 1. 安装JNI(java Native Interface)的开发环境。 (1)NDK(Native Development kit):NDK是一个工具集,允许你的App使用一些底层语言代码,例如C和C++。 (2)CMake:CMake是一个跨平台的编译工具,可以用简单的语句来

L的博客 6909
上一篇: ios编译ffmpeg出现xcrun -sdk iphoneos clang is unable to create an executable file的解决方法
下一篇: ffmpeg历史版本下载
BranchLin
博客等级 码龄10年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值