确保您的应用支持 64 位设备
https://developer.android.google.cn/distribute/best-practices/develop/64-bit
环境搭建
下载使用Cygwin,安装make,gcc等必要组件
使用VS自带的make
Makefile教程参考:https://blog.csdn.net/weixin_38391755/article/details/80380786
如此看来 Android.mk 和 Application.mk 只是自定义格式的Makefile文件,相关教程:https://www.cnblogs.com/SoaringLee/p/10532102.html
下载并配置NDK,参考:
https://blog.csdn.net/fengbingchun/article/details/44491763
https://www.cnblogs.com/exmyth/p/3576731.html
配置Makefile文件,参考第三方库官网要求
编译32位和64位版本时设置架构参数为:
APP_ABI := armeabi-v7a arm64-v8a
遇到的坑:
1、出包成功后测试64位包运行状况,出现了读取资源闪退的情况,追踪后发现是 unsigned long类型的坑,即unsigned long int,该类型在32位系统长度为32位,64位系统长度为64位。导致读取文件头长度出错。改为unsigned int,固定为32位就好了。
2、指针类型转换出错,有些代码将64位的指针的值强制转换成了u32类型,改成转换成size_t即可改成跨平台的类型。