运行 AOSP 基于 Mac(Yosemite 及更高版本)

Running AOSP build on Mac (Yosemite and later)

我能够将 android-5.0.1_r1 的源代码放入我的工作目录中。但是,我在模拟器上构建和 运行 代码时遇到了麻烦,因为 lunch 命令给我带来了麻烦。

repo has been initialized in /Volumes/AOSPDiskImage/AOSP
Nikhils-MBP:AOSP Nikhil$ . build/envsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/fugu/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/moto/shamu/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including sdk/bash_completion/adb.bash
Nikhils-MBP:AOSP Nikhil$ lunch

You're building on Darwin

Lunch menu... pick a combo:
 1. aosp_arm-eng
 2. aosp_arm64-eng
 3. aosp_mips-eng
 4. aosp_mips64-eng
 5. aosp_x86-eng
 6. aosp_x86_64-eng
 7. aosp_deb-userdebug
 8. aosp_flo-userdebug
 9. full_fugu-userdebug
 10. aosp_fugu-userdebug
 11. aosp_grouper-userdebug
 12. aosp_tilapia-userdebug
 13. mini_emulator_arm64-userdebug
 14. mini_emulator_arm-userdebug
 15. mini_emulator_mips-userdebug
 16. mini_emulator_x86-userdebug

你想要哪个? [aosp_arm-eng]

每次,我都选择了其中一个选项,但我总是收到一条如下所示的消息:

Which would you like? [aosp_arm-eng] 6
build/core/combo/mac_version.mk:38:          
*****************************************************
build/core/combo/mac_version.mk:39: * Can not find SDK 10.6 at  
/Developer/SDKs/MacOSX10.6.sdk
build/core/combo/mac_version.mk:40: 
*****************************************************
build/core/combo/mac_version.mk:41: *** Stop..  Stop.

** Don't have a product spec for: 'aosp_x86_64'
** Do you have the right repo manifest?

我错过了什么?我该怎么办?

假设您在 Yosemite 遇到此问题,这是一个已知问题。

虽然目前没有正式的解决方法,但假设您已经安装了 XCode,您应该能够通过符号链接您当前的 SDK 来修复它:

sudo ln -s /Developer/SDKs/MacOSX10.10.sdk /Developer/SDKs/MacOSX10.6.sdk

然后修改build/core/combo/mac_version.mk,并更改:

mac_sdk_versions_supported := 10.6 10.7 10.8

mac_sdk_versions_supported := 10.9 10.10

这只是 Xcode 版本控制以及之前将其硬编码到构建过程中的方式的问题。

感谢@JFKingsley 为我指明了正确的方向。符号链接不起作用,因为我从来没有 OSX 的 10.6 SDK。我认为这可能与我拥有 XCode 版本 6.4 的事实有关?但正如 JFKingsley 所说,真正起作用的是编辑 mac_version.mk 文件。在emacs中打开文件然后编辑它。

Issue

并将 10.11 添加到 build/core/combo/mac_version.mk 中的支持版本对我有用

在 El Capitan 上,none 这些建议对我有用。我必须执行以下操作:

  1. 已从此处下载 XCode 5.1.1:http://adcdownload.apple.com/Developer_Tools/xcode_5.1.1/xcode_5.1.1.dmg 其中包含 SDK 10.8 和 10.9。
  2. 运行 sudo xcode-select -s /Volumes/Xcode/Xcode.app/Contents/Developer
  3. lunch
  4. make -j8

None 的其他建议对我有用。构建(和祈祷)目前正在进行中。

另见:https://code.google.com/p/android/issues/detail?id=78396

更新: 这对我有用并且会继续为我工作。唯一需要注意的是确保每次 运行 构建之前安装 XCode DMG。一个小的 shell 脚本应该可以帮助实现自动化。

我尝试了@JFKingsley提供的解决方案,这是我彻底解决问题的笔记:

通过查看 /Developer/SDKs/

检查您拥有哪些 SDK
##> ls  /Developer/SDKs/
MacOSX10.11.sdk  

不要 按照其他回复中的建议创建一个从 heigher SDK 到 10.6 的符号 link - 因为它可能会在某些时候破坏编译。

相反,编辑 build/core/combo/mac_version.mk

在这一行,写入你安装的SDK

mac_sdk_versions_supported := 10.11

这应该可以正确解决您的问题。

对于 macOS High Sierra

在 build/core/combo/mac_version.mk 中添加 10.13 对我有用