我正在尝试为nexus 5构建Android 5.1.1(分支机构android-5.1.1_r14)。我的构建环境基于Ubuntu 12.04。我已经安装了所有必需的包。在下载源代码之前,我没有下载repo
(二进制)的新副本,就像我上次构建时(大约一年前)一样。
我为所需分支进行了repo同步。 AOSP下载后,我下载并解压缩了所需的二进制文件并生成了vendor
文件夹。我在跑午餐时准备锤头的建筑物时遇到错误:
Lunch menu... pick a combo:
....
14. aosp_hammerhead-userdebug
....
Which would you like? [aosp_arm-eng] 14
build/core/envsetup.mk:162: no file name for `include'
build/core/envsetup.mk:173: Extraneous text after `else' directive
build/core/combo/select.mk:65: build/core/combo/TARGET_linux-.mk: No such file or directory
build/core/clang/config.mk:81: build/core/clang/TARGET_.mk: No such file or directory
** Don't have a product spec for: 'aosp_hammerhead'
** Do you have the right repo manifest?
我确实找到了page:
You may use Ubuntu 12.04 to build older versions of Android. Version 12.04 is not
supported on master or recent releases.`
以上陈述是午餐错误的原因还是我错过了其他一些步骤?
修改
我尝试使用其他午餐选项。他们都没有工作。
我还检查了下载代码中的.repo
文件夹。文件manifest.xml
包含以下行:
<manifest>
<remote name="aosp"
fetch=".." />
<default revision="refs/tags/android-5.1.1_r14"
remote="aosp"
sync-j="4" />
.....
我决定不使用repo二进制文件的新副本可能导致此问题吗?
编辑2:
我更新了repo
二进制文件,我进行了重新同步并运行了envsetup.sh
脚本。它仍然无法正常工作。我尝试在我拥有的远程服务器上下载代码(14.04)。我注意到,与我的本地12.04(aosp_hammerhead-userdebug
是14.04的午餐选项21,而它是12.04的14)相比,该机器上的午餐选项顺序不同,即使使用相同的repo二进制文件和相同的android分支同步。我的远程14.04服务器上的午餐和编译工作正常,但我需要在我的本地12.04上进行闪存我的设备。