MacOS编译Android 源码aapt2工具
缘起
最近在查看aapt2的源码,这中间自然少不了要下载编译源码了,其中ubuntu系统的编译相对简单,使用ubuntu系统下载编译能省不少步骤。
最近在mac系统上编译,遇到了一些问题,在这里记录下。
折腾过程
下载源码
mac系统本身是大小写不敏感的,而Android系统的源码及编译是需要大小写敏感(linux系统原生就是这样),因此需要使用如下步骤创建并挂载(注意完全编译需要不少空间,可以分配个几百GB)。
hdiutil create -volname "aapt" -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 500g aapt.dmg hdiutil attach aapt.dmg.sparseimage -mountpoint /Volumes/aapt
拉取源码
这个步骤不赘述,建议参考国内镜像,比如中科大的镜像http://mirrors.ustc.edu.cn/help/aosp.html
编译
使用如下步骤即可
source build/envsetup.sh # j1是因为使用mac电脑配置较低单线程,高配随意 mmm -j1 frameworks/base/tools/aapt2
中间出现了一些编译问题,解决过程如下:
不支持的sdk版本[10.0,10.1,10.2,10.3]
出现这个原因是没有按照xcode或者xcode版本不对,比如这里要求10.0-10.3的sdk,可以安装xcode-9.4版本,下载地址在https://developer.apple.com/download/all/?q=xcode
-lrt 不支持错误
出现此问题,应该是和macOS的版本有关系,我们在这里直接通过修改出问题的Android.bp文件,删除相关选项解决。
error: external/v8/Android.bp:181:16: module "v8_bytecode_builtins_list_generator" variant "darwin_x86_64": host_ldlibs: Host library `-lrt` not available
比如这里出现问题的就是external/v8/Android.bp,删除文件出问题的lrt的几行即可(注意是删除,不是把-lrt换成空的引号)
参考文档
https://github.com/lizhangqu/aapt-cmake-buildscript
https://sunytan.github.io/2021/11/08/Mac编译Android 源码记录/#valine-comments
发表评论