Android JNI系列详解之CMake配置库文件的输出目录

news2025/1/23 17:32:48

一、前提

阅读上一篇文章Android JNI系列详解之CMake编译工具的使用,里面讲到了需要配置两个文件:CMakeList.txt和build.gradle

二、配置CMake编译工具输出库文件的路径

1.默认的库文件输出路径:app/build/intermediates/cmake/debug/obj

由此可见不便于每次查找,因此我们需要将这个路径配置到我们自定义的路径。

2.设置库文件的输出目录

只需要在CMakeList.txt文件中写如下代码:

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI})

 ​​​​​这是我在项目中加的代码

 含义:

# CMAKE_CURRENT_SOURCE_DIR 是指 cmake库的源路径,通常是build/.../cmake/

# /../jniLibs/ 是指与CMakeList.txt所在目录的同级目录:jniLibs (如果没有会新建)

# ANDROID_ABI 生成库文件时,采用gradle配置的ABI策略(即:生成哪些平台对应的库文件)

 加完上面的配置输出路径的代码之后,我们将项目Make一下,就会生成如下目录:

也就是CMakeList.txt所在目录(cpp目录)的同级目录。

异常情况:

到这里我项目是能正常跑通的,没有遇到一个错误:more then one file was found with OS independent path 'lib/armeabi-v7a/libtestnative'

如果遇到了,意思是有重复的库文件,就是build下有一份会被加载进项目,jniLibs这个指定的目录也会加载进项目。只需要改个名字就行,保证只引用一个地方就行,如jniLibsss。就不会报错。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/924642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot整合rabbitmq发布确认高级

在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们如何才能进行 RabbitMQ 的消息可靠投递。 发布确认 发布确认方案 架构 配置…

poi带表头多sheet导出

导出工具类 package com.hieasy.comm.core.excel;import com.hieasy.comm.core.excel.fragment.ExcelFragment; import com.hieasy.comm.core.utils.mine.MineDateUtil; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*; import org.apache.po…

android studio安装教程

1、android studio 下载 下载网址:Download Android Studio & App Tools - Android Developers 2、开始安装 因为不需要每次连接手机进行调试,android studio给我们提供了模拟器调试环境。 一般选择自定义安装,这样可选sdk以及下载路径…

IT运维:使用数据分析平台监控 Kafka 服务

Apache Kafka 是由 LinkedIn 开发,并于2011年开源的分布式消息队列服务。但是通过快速持续的演进,目前它发展成为成熟的事件流处理平台,可用于大规模流处理、实时数据管道和数据集成等场景。 Kafka 的服务端组件包括一个或者多个 broker。Bro…

视频云存储/安防监控AI视频智能分析平台——智慧煤矿解决方案

一、方案背景 煤矿业是一个高风险行业,存在着许多潜在的安全隐患和风险。互联网、物联网、人工智能等新兴技术高速发展,为传统行业带来颠覆性变革,将高新技术与传统技术装备、管理相融合,实现产业转型升级已经成为煤矿行业发展趋…

【0824作业】C++ 拷贝赋值函数、匿名对象、友元、常成员函数和常对象、运算符重载

一、思维导图 二、作业&#xff1a;实现关系运算符的重载 关系运算符重载 概念&#xff1a; 种类&#xff1a;>、>、< 、< 、 、!表达式&#xff1a;L#R (L表示左操作数&#xff0c;R表示有操作数&#xff0c;#表示运算符)左操作数&#xff1a;既可以是左值也可以…

BSN与中国食品药品企业质量安全促进会达成战略合作协议

2023年8月18日至20日&#xff0c;“首届中国食品药品医疗器械化妆品高质量发展大会”在北京召开&#xff0c;本届大会以“树立新发展理念&#xff0c;服务构建新发展格局&#xff0c;助力食药行业高质量发展”为主题&#xff0c;聚焦食药监管和行业发展的热点、难点问题&#x…

R语言主成分分析

R语言主成分分析 之前介绍过怎么用SPSS进行主成分分析(PCA)&#xff0c;已经忘了的朋友们可以到主页看看 今天主要介绍下R语言主成分分析的几种方法。都是入门级别&#xff0c;跟着我一步步走&#xff0c;一点都不难哈~ 首先调用R语言自带的数据集&#xff0c;USArrests。这…

嵌入式linux之QT交叉编译环境搭建(最简单实测通用版)

这里总结下用于嵌入式linux下的QT交叉编译环境搭建&#xff0c;留作备忘&#xff0c;分享给有需要的小伙伴。不管你的是什么嵌入式linux环境&#xff0c;实测过的通用方法总结。 环境准备 需要准备的环境要求如下&#xff1a; 1.虚拟机(vmvare15.5) 2.ubuntu18.04-x64的linu…

4.网络设计与redis、memcached、nginx组件(一)

网络组件系列文章目录 第四章 网络设计与redis、memcached、nginx组件 文章目录 网络组件系列文章目录文章的思维导图前言一、网络相关的问题&#xff0c;网络开发中要处理那些问题&#xff1f;网络操作IO连接建立连接断开消息到达消息发送网络操作IO特性 二、网络中IO检测IO函…

【Java】基础练习(十一)

1.Poker 定义两个数组&#xff0c;一个数组存储扑克牌花色&#xff0c;另一个数组存储扑克牌&#xff08;A~K&#xff09;&#xff0c;输出52张扑克牌&#xff08;除大小王&#xff09; ♥A、♥2...&#xff08;1&#xff09;Poker类&#xff1a; package swp.kaifamiao.cod…

03-Numpy基础-通用函数:快速的元素级数组函数

通用函数&#xff08;即ufunc&#xff09;是一种对ndarray中的数据执行元素级运算的函数。你可以将 其看做简单函数&#xff08;接受一个或多个标量值&#xff0c;并产生一个或多个标量值&#xff09;的矢量化包 装器。 通用函数&#xff08;ufunc&#xff09;有三种类型&…

【BUG】解决安装oracle11g或12C中无法访问临时位置的问题

项目场景&#xff1a; 安装oracle时&#xff0c;到第二步出现oracle11g或12C中无法访问临时位置的问题。 解决方案&#xff1a; 针对客户端安装&#xff0c;在cmd中执行命令&#xff1a;前面加实际路径setup.exe -ignorePrereq -J"-Doracle.install.client.validate.cli…

countDown+react+hook

道阻且长&#xff0c;行而不辍&#xff0c;未来可期 知识点一&#xff1a; new Date().getTime()可以得到得到1970年01月1日0点零分以来的毫秒数。单位是毫秒 new Date().getTime()/1000获取秒数1分钟60秒&#xff0c;1小时60分钟1hour:60*60>单位是秒 60*60*1000>单位…

远程办公中安全远程访问解决方案

什么是安全远程访问 安全的远程访问是一个至关重要的过程&#xff0c;可让您使用互联网从远处完全控制某人的设备。为了确保安全&#xff0c;为受保护的远程访问采取了额外的身份验证和加密措施。 为什么安全远程访问解决方案很重要 当 IT 技术人员从远处帮助人们解决计算机…

GWO-LSTM交通流量预测(python代码)

使用 GWO 优化 LSTM 模型的参数&#xff0c;从而实现交通流量的预测方法 代码运行版本要求 1.项目文件夹 data是数据文件夹&#xff0c;data.py是数据归一化等数据预处理脚本 images文件夹装的是不同模型结构打印图 model文件夹 GWO-LSTM测试集效果 效果视频&#xff1a;GWO…

NLNet论文总结和代码实现

Non-local Neural Networks&#xff08;非局部神经网络&#xff09;&#xff1a;使用自注意力机制捕获远程依赖。 论文&#xff1a; https://arxiv.org/pdf/1711.07971.pdf 源码&#xff1a; 长距离依赖关系&#xff0c;顾名思义&#xff0c;是要和远程建立关系&#xff0c;在l…

牛客:数对

题目&#xff1a; 解题思路&#xff1a;看到题目的时候&#xff0c;一般第1反应是用两个循环暴力解题&#xff0c;时间复杂度是O(n^2)&#xff0c;不能通过&#xff0c;所以要优化&#xff0c;通过找规律。 一、当 y < k 时&#xff0c; 不可能符合题意&#xff0c;所以 y 从…

数据集收集列表(opencv,机器学习,深度学习)持续更新

opencv 车牌识别数据集 opencv 手写数字识别数据集 机器学习 Pima Indians数据集&#xff0c;下载地址

Docker的革命:容器技术如何重塑软件部署之路

引言 在过去的几年中&#xff0c;容器技术已经从一个小众的概念发展成为软件开发和部署的主流方法。Docker&#xff0c;作为这一变革的先驱&#xff0c;已经深深地影响了我们如何构建、部署和运行应用程序。本文将探讨容器技术的起源&#xff0c;Docker如何崛起并改变了软件部…