Mac上Android开发集成C++项目踩坑记录
开发环境情况
- Mac OS:Big Sur(11.1)
- Java Version: 16
- Android studio:4.1.3
- 安装NDK
- 安装CMake
背景情况
- 由于是半途接入19年同事留下的在Android环境中的C++工程,需要了解通过CMake进行静态库、动态库编译知识,以及Android项目中如何采用JNI(Java Native Interface)进行源码调试,加载SO库流程。
集成调试过程
- 采用CMake整合C++多个项目,将多个项目分别打包成静态库(主要包括.a和头文件)并拷贝到Android工程统一目录管理;
- 根据统一管理目录情况,添加动态库配置,以便形成Android联调需要的SO库
-
坑- Android机型CPU架构多,提供的.a库支持不足,需要补充多种架构的.a库,这里涉及到.a库多架构合并(可以采用lipo -info、 lipo -create处理)
- Android真机调试数据线必须要求支持数据传输(刚接触Android开发),很多Type-c数据线无法支持
- 【填坑】确保adb服务正常启动(4.2需要手动开启后才能找到真机)
- 【填坑】购买数据线时一定询问要支持真机调试【推荐数据线】
-
build情况下生成的apk中有打入so库,而run情况下程序启动后就崩溃,报错找不到对应cup架构的so库(由于调试时abi

本文记录了在Mac OS Big Sur环境下,使用Android Studio 4.1.3进行Android开发集成C++项目的踩坑经历。内容包括安装NDK和CMake,通过CMake整合多个C++项目为静态库,处理不同CPU架构的.a库合并,解决Android真机调试问题,以及在build和run过程中遇到的SO库找不到的错误。通过调整abiFilters和添加特定代码,最终成功完成调试。
最低0.47元/天 解锁文章
1533

被折叠的 条评论
为什么被折叠?



