mac 10.13 编译 Android源码

编译环境:

mac os 10.13 xcode:Version 9.2 (9C40b)

jdk:1.8.0_151 

源码版本:android-8.1.0_r1

官方教程https://source.android.com/setup/initializing,具体可以百度一下,教程很多多,下载源我用清华的。

编译过程中我碰到4个问题,前两个的解决方案详细可以看这里Mac 10.12 编译 Android 源码

第一个问题是找不到对应的MacOSX.sdk,比如找不到MacOSX10.12.sdk,你需要到 https://github.com/phracker/MacOSX-SDKs/releases 下载需要的版本,我这里下载的是MacOSX10.12.sdk,解压复制到如下目录

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs

第二个是找不到jdk,这个在根目录的.bash_profile文件中添加

export ANDROID_JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

接下来会碰到第三个问题,log如下如下,可能每个人显示的都不一样的,注意看是否有external/bison/这些log。

[ 3% 2279/59686] yacc
out/soong/.inte…/system/tools/aidl/aidl_language_y.cpp

FAILED:
out/soong/.intermediates/system/tools/aidl/libaidl-common/darwin_x8664static/gen/yacc/system/tools/aidl/aidl_language_y.cpp
out/soong/.intermediates/system/tools/aidl/libaidl-common/darwin_x8664static/gen/yacc/system/tools/aidl/aidl_language_y.h

BISON_PKGDATADIR=external/bison/data
prebuilts/misc/darwin-x86/bison/bison -d
–defines=out/soong/.intermediates/system/tools/aidl/libaidl-common/darwin_x8664static/gen/yacc/system/tools/aidl/aidl_language_y.h
-o out/soong/.intermediates/system/tools/aidl/libaidl-common/darwin_x8664static/gen/yacc/system/tools/aidl/aidl_language_y.cpp
system/tools/aidl/aidl_language_y.yy

[ 3% 2282/59686] lex
out/soong/.inter…/system/tools/aidl/aidl_language_l.cpp

ninja: build stopped: subcommand failed.

14:03:54 ninja failed with: exit status 1

make: *** [run_soong_ui] Error 1

关于这个问题一直没有找到解决办法,直到这个讨论build aosp on Mac OS 10.13 failed有更新,🙏🙏🙏。

解决方案如下:

Patch [bison fix](https://android-review.googlesource.com/c/platform/external/bison/+/517740) for High Sierra and build bison:

    1. cd /Volumes/AOSP/external/bison
    2. git cherry-pick c0c852bd6fe462b148475476d9124fd740eba160
    3. mm

Replace prebuilt bison binary with patched binary

    1. cp /Volumes/AOSP/out/host/darwin-x86/bin/bison /Volumes/AOSP/prebuilts/misc/darwin-x86/bison/

Build

    1. make  -j4

如果mm命令无法执行,需要回去执行以下命令

1. source build/envsetup.sh
2. lunch 之后回到external/bison目录
3. mm

第四个问题是Try increasing heap size with java option

export JACK_SERVER_VM_ARGUMENTS=”-Dfile.encoding=UTF-8 -XX:+TieredCompilation
-Xmx4g”

./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server

剩下的就是编译和耐心等编译结束了。

参考链接:

  1. build aosp on Mac OS 10.13 failed
  2. Mac 10.12 编译 Android 源码
  3. http://blog.csdn.net/zxf20063033/article/details/56296403
    原文作者:天水_10
    原文地址: https://www.jianshu.com/p/35f840dd7869
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞