mac 编译android8.0源码遇到的问题

此文连接上文,只是记录中间遇到的出错误问题,详细步骤就不说了

macOS:10.15.2

android版本:8.0.0_r16

java版本:jdk1.8.0_181.

移动硬盘:区分大小写,准备了200G(编译前102G,编译后145G)

下面就记录错误信息

  • 执行编译程序:./build/envsetup.sh

    报错:WARNING: Only bash is supported, use of other shell would lead to erroneous results

    意思是:只有bash才支持,而我之前用的终端一直是zsh,导致mmm命令的运行出现问题       

               查看本地是bash还是zsh:ps -o command -p $$

               切换zsh:chsh -s /bin/zsh

               切换bash:chsh -s /bin/bash

               重启终端生效

  • xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance   

           终端执行:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

 

 

  • build/core/combo/mac_version.mk:39: * Can not find SDK 10.6 at /Developer/SDKs/MacOSX10.6.sdk

       

          这里提示我们缺少相应的 MacOsX sdk,这个 sdk 的目录在 Xcode 的应用程序包里面, 目录如下:

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

          我是在这个网站下下的, 没有任何问题 https://github.com/phracker/MacOSX-SDKs/releases

         我们把 sdk 下下来, 解压, 并且放到 Xcode 的相应目录下面. 然后创建 名为MacOSX10.11.sdk

          然后在源代码目录下执行:sudo ln -s MacOSX10.11 MacOSX10.11.sdk

         最后修改源代码目录下的 mac_version.mk 文件

          修改mac_sdk_version_supported:=10.11 添加我们刚刚下载好的版本即可

  • 编译过程出差错:You are building on a case-insensitive filesystem,Case-insensitive filesystems not supported. Stop.

          执行命令:hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg

  该命令会创建一个名为android.dmg或者android.dmg.sparseimage的磁盘驱动器,一旦加载,那么就会运行在Android开发的驱动器格式上

         如果磁盘不够大,后续可以执行以下命令做调整,注意调整前需要先unmount

         # hdiutil resize -size 200g ~/android.dmg.sparseimage

  • You are building on a case-insensitive filesystem.Please move your source tree to a case-sensitive filesystem.

          在默认安装过程中,Mac OS 会在一个保留大小写但不区分大小写的文件系统中运行。Git 并不支持此类文件系统,而且此类文件系统会导致某些 Git 命令(例如 git status)的行为出现异常。因此,我们建议您始终在区分大小写的文件系统中对 AOSP 源文件进行操作

         hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg

         这将创建一个 .dmg(也可能是 .dmg.sparseimage)文件,该文件在装载后可用作具有 Android 开发所需格式的存储卷。

         如果您以后需要更大的存储卷,还可以使用以下命令来调整稀疏映像的大小:

         hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage

 

  • BISON_PKGDATADIR=external/bison/data prebuilts/misc/darwin-x86/bison/bison -d  --defines=out/soong/.intermediates/external/one-true-awk/awk/android_arm64_armv8-a_core/gen/yacc/external/one-true-awk/awkgram.h -o out/soong/.intermediates/external/one-true-awk/awk/android_arm64_armv8-a_core/gen/yacc/external/one-true-awk/awkgram.c external/one-true-awk/awkgram.y

sudo ln -s /usr/local/Cellar/bison/3.5.3/bin/bison /Volumes/android/WORKING_DIRECTORY/android6.0/prebuilts/misc/darwin-x86/bison/bison

1、brew install bison

2、rm /<andorid_code_path>/prebuilts/misc/darwin-x86/bison/bison

3、建立软连接:sudo ln -s /usr/local/Cellar/bison/3.5.3/bin/bison /Volumes/android/code/prebuilts/misc/darwin-x86/bison/bison

4、重新make

 

  • internal error: Could not find a supported mac sdk: ["10.10" "10.11" "10.12"]

查看cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

内的sdk版本

在源码中继续查看版本:vim build/soong/cc/config/x86_darwin_host.go

最后把本地的sdk版本添加到源码中即可

  • build/core/config.mk:600: *** Error: could not find jdk tools.jar at

    /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/../lib/tools.jar,

    please check if your JDK was installed correctly. Stop.​​​​​​​

打开mac bash_profile环境变量,增加一行:export ANDROID_JAVA_HOME = ${JAVA_HOME}

  • /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSUUID.h:29:30: error: nullability specifier '_Nonnull' cannot be applied to non-pointer type 'uuid_t' (aka 'unsigned char [16]')

​​​​​​​删除xcode sdk高版本,删除了之前添加的10.14版本,添加了10.12版本,同时修改 源代码/bulid/soong/cc/config/x86_darwin_host.go文件对应的文件,删除应该删除的

  • yacc out/soong/.inte…/system/tools/aidl/aidllanguage_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

 

cd /Volumes/AOSP/external/bison

git cherry-pick c0c852bd6fe462b148475476d9124fd740eba160

mm 用新生成的bison替换掉原bison文件

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

重新编译make -j4

  • FAILED: setup-jack-server,Unsupported curl, please use a curl not based on SecureTransport,Jack server installation not found

​​​​​​​重新安装jack-server:prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar

进入源码目录,先把jack-server杀掉:./prebuilts/sdk/tools/jack-admin kill-server

然后重启:./prebuilts/sdk/tools/jack-admin start-server

  • Unsupported curl, please use a curl not based on SecureTransport​​​​​​​

无法启动 Jack server:

这是因为 cURL 版本和 Jack 工具链不兼容,在 这里 找到解决办法,来重新安装一个基于 OpenSSL 的 cURL

brew install curl-openssl

修改~/.bash_profile中的配置:export PATH=/usr/local/opt/curl-openssl/bin:$PATH

  • Try increasing heap size with java option '-Xmx'

​​​​​​​出现这个错误是由于电脑内存不足,在命令行分别执行以下三条语句,然后继续编译

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值