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

一、前提

阅读上一篇文章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。就不会报错。

相关推荐
一只修仙的猿39 分钟前
再谈性能优化,一次项目优化经历分享
android·性能优化
雮尘3 小时前
Android性能优化之枚举替代
android
2501_915909064 小时前
苹果上架App软件全流程指南:iOS 应用发布步骤、App Store 上架流程、uni-app 打包上传与审核技巧详解
android·ios·小程序·https·uni-app·iphone·webview
2501_915921434 小时前
iOS 文件管理与能耗调试结合实战 如何查看缓存文件、优化电池消耗、分析App使用记录(uni-app开发与性能优化必备指南)
android·ios·缓存·小程序·uni-app·iphone·webview
2501_915918415 小时前
App 苹果 上架全流程解析 iOS 应用发布步骤、App Store 上架流程
android·ios·小程序·https·uni-app·iphone·webview
2501_916007475 小时前
苹果上架全流程详解,iOS 应用发布步骤、App Store 上架流程、uni-app 打包上传与审核要点完整指南
android·ios·小程序·https·uni-app·iphone·webview
PuddingSama7 小时前
Android 高级绘制技巧: BlendMode
android·前端·面试
2501_915921437 小时前
iOS App 性能监控与优化实战 如何监控CPU、GPU、内存、帧率、耗电情况并提升用户体验(uni-app iOS开发调试必备指南)
android·ios·小程序·uni-app·iphone·webview·ux
Digitally7 小时前
如何将视频从安卓手机传输到电脑?
android·智能手机·电脑
CV资深专家7 小时前
Android 相机框架的跨进程通信架构
android