mac 10.13 编译 Android源码

作者: 天水_10 | 来源:发表于2017-12-12 00:48 被阅读838次

    编译环境:

    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

    相关文章

      网友评论

      • 0ddc1f7125e0:bison 打补丁真的有用:clap: :clap:
      • 大利猫:赞, 我也遇到这个问题
      • 164512c5ddd2:bison 打补丁真的有用:clap: :clap:
      • 十橙:请问博主 你的Xcode 版本是多少?
        天水_10:@十橙 能贴一下错误信息么
        十橙:@天水_10 我也是这个版本,然后我遇到了你遇到的第三个问题链接里面的另一个问题:joy: 有人用删除Xcode 9 安装Xcode 8.3.3解决。我还在试。
        天水_10:Version 9.2 (9C40b)

      本文标题:mac 10.13 编译 Android源码

      本文链接:https://www.haomeiwen.com/subject/infgixtx.html