我的第一篇博客——Android Studio 2.2 NDK开发之Cmake 编译多个源文件的问题
来源:互联网 发布:nginx日志 编辑:程序博客网 时间:2024/05/21 22:35
版权声明:本文为博主原创文章,未经博主允许不得转载。
我的技术之旅从现在开始啦,第一次写博客,欢迎大家批评指正。
这几天一直在搞Android Studio升级到2.2版本后Android NDK的开发问题,忙了几天,走了很多弯路,今天终于解决,在此进行记录。以前用1.5的版本开发了一个Android端调用底层C语言实现的图像处理算法APP,该版本只需在build.gradle中的defaultConfig{ndk{}}
block中添加一些配置信息,IDE自动帮你打包源文件信息编译成.so的库,如下:
defaultConfig{ ndk{ moduleName "Detect"//要编译的库名 ldLibs "log", "z", "m", "jnigraphics"//依赖的库 abiFilters "armeabi", "armeabi-v7a", "x86"//平台信息 stl "stlport_shared"//支持C++的库 }}
升级到Android Studio 2.2后,NDK使用Cmake来进行编译库文件,方便进行管理和维护,建好工程后app/src/main/
目录下会生成一个cpp
文件夹,用户需要在CmakeLists.txt
中写需要的配置信息将cpp
目录下的C语言源文件编译成库文件。在编译过程中遇到如下问题:
找到原因是CmakeLists.txt
中没有加入源文件,源文件的上方还出现以下提示:
将源文件加入到CmakeLists.txt
中的add_library(源文件相对路径)
块中,编译通过,但是在运行过程中闪退,Android Monitor
提示找不到本地函数,纠结了很久,找了很多原因,终于解决了,其实只是少了一个关键字。
解决办法如下:
因为源文件被分成了多个文件,需要在native-lib.cpp
文件中每个本地函数实现的外部加上extern "C"{本地函数的实现部分}
,它的作用是进行外部调用,允许调用外部源文件的函数。至此几天的问题就解决啦。
0 0
- 我的第一篇博客——Android Studio 2.2 NDK开发之Cmake 编译多个源文件的问题
- Android NDK开发——CMake的编译使用
- 我的有史以来的第一篇博客 ——记录android学习之路
- android问题(纪念我的第一篇博客)
- android studio 2.2 使用cmake编译NDK
- Android Studio 2.2 NDK 开发 之 cMake 方式
- Android之路,我的第一篇博客
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
- 利用Android Studio的CMake来快速开发NDK
- 我的第一篇android博客
- Android Studio ndk的开发(我的第一个ndk程序)
- Android NDK开发扫盲及最新CMake的编译使用
- Android NDK开发扫盲及最新CMake的编译使用
- Android NDK开发扫盲及最新CMake的编译使用
- Android NDK开发扫盲及最新CMake的编译使用
- Android NDK开发扫盲及最新CMake的编译使用
- Android NDK开发扫盲及最新CMake的编译使用
- 17、SSM框架-Spring mvc对于静态资源的访问(4)
- RMAN vs. Export
- 【书海】《拖延心理学》 ——读后总结
- 匹配字符串相似度算法(各个语言版本)
- Lucene学习总结之一:全文检索的基本原理
- 我的第一篇博客——Android Studio 2.2 NDK开发之Cmake 编译多个源文件的问题
- ROS(indigo) 用于机器人控制的图形化编程工具--code_it robot_blockly
- 18、SSM框架-SpringMVC 实例文件上传(5)
- 10.7抛出异常处理
- Java——递归实现组合
- java 内存溢出
- 文章标题
- 图解SQL的各种连接join
- qduoj 签到题 (树状数组)