一、环境配置
运行环境:
1. 系统:Mac os Apple M1
2. Android Studio 4.0
配置环境:
1. 配置jdk环境
2. 配置ndk环境:
下载android-ndk-r20b(其它版本可能会出现编译错误的问题),也可以在Android Studio里下载
下载网址:https://developer.android.com/ndk/downloads/older_releases
配置环境变量:
验证ndk环境是否配置成功
输入命令:ndk-build -v
3. 配置CMake环境
安装Cmake
验证CMake是否安装成功
命令cmake --version (我安装的是3.22.1)
4. 配置Python环境
命令1:安装Python(mac有自带 我这里是2.7)
命令2:验证Python是否安装成功
python
二、编译所需库
1. 下载mars源码,git仓库地址为:https://github.com/Tencent/mars
2. 进入源码中:mars/mars目录,执行脚本:
生成armeabi-v7a架构:python build_android.py (默认生成)
生成arm64-v8a架构:python build_android.py (修改此文件中的arch参数为arm64-v8a)
选择3,然后Enter,只生成xlog模块的库;
其它架构生成方式也是如此;
3. 生成后的库保存在:sample/mars-master/mars/libraries/mars_xlog_sdk/libs目录下;
三、遇见问题
1.在使用NDK编译时 可能会遇到NDK不支持arm64错误
Unknown host CPU architecture arm64
需要把NDK目录下的build文件修改一下
改为以下代码
#!/bin/sh
# 原脚本
# DIR="$(cd "$(dirname "$0")" && pwd)"
# $DIR/build/ndk-build "$@"
# 新脚本
DIR="$(cd "$(dirname "$0")" && pwd)"
arch -x86_64 /bin/bash $DIR/build/ndk-build "$@"
2.运行python build_android.py脚本时报错build fail
我这里的原因是cannot find -lzstd
然后我使用brew install libstdc++-static安装了一下、再次运行python脚本就成功了