此文连接上文,只是记录中间遇到的出错误问题,详细步骤就不说了
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