2

这是一个非常具体的问题,但我已经没有想法了,我希望有一些新的方向。

我已经按照此处的说明从 Android Open Source Project 下载了 Android 源代码:

http://source.android.com/source/building.html

我遵循了特定于 Mac 的所有步骤(区分大小写的磁盘映像,制作 v3.81,文件描述符设置为 1024),并按照网站上的建议将构建设置为“lunch full-eng”。我有整棵树,通过这些设置,我可以构建它,并且在我的机器上没有问题。

具体来说,我对 aapt(在 frameworks/base/tools/aapt 中)进行了一些更改,然后我将其清理(make clean-aapt)然后重建(make aapt)。它构建没有问题。当我从命令行运行 aapt 时,它运行良好并且不会崩溃。我在 Mac 10.9 Mavericks 上进行所有这些检查/构建。

接下来,我将我新建的 aapt 二进制文件发送给运行 Mac 10.8 Mountain Lion 的同事,它在执行时立即出现段错误。

我想也许是我的改变,所以我删除了我添加的所有内容。清洁和重建。同样的问题。这绝对不是我的改变。

我的猜测是我需要将它设置为启用了一些兼容性标志,但我不确定要设置什么或在哪里设置它。有没有人有任何想法我可以看?

4

1 回答 1

2

好的,我想通了,所以为了后代,我将在这里发布我的解决方案。

在 AOSP 建立和 Mavericks 发布之间,Mac OSX SDK 的位置发生了变化。它曾经位于这里:

/Developer/SDKs/MacOSX10.x.sdkx您要使用的版本在哪里。

但是最近对 XCode 的更改已将较新的 SDK(10.8 和 10.9)移至 XCode.app 包中,并删除了旧的 SDK。但是,我从这里找到并下载了一组先前的 SDK,以备不时之需:

http://aaronwallace.github.io/MacOSX_SDKs/

我将它们复制到/Developer/SDKs中,将名为 MAC_SDK_VERSION 的环境变量设置为我要构建的版本,然后执行以下操作:

mbpr15:Android awt$ export MAC_SDK_VERSION=10.6
mbpr15:Android awt$ lunch sdk-eng

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.3.2.1.000.000
TARGET_PRODUCT=sdk
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86
HOST_OS=darwin
HOST_OS_EXTRA=Darwin-13.0.0-x86_64-i386-64bit
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
OUT_DIR=out
============================================

mbpr15:Android awt$ make -j8 sdk

完美运行。这构建了一组与旧版 Mac OSX 兼容的自定义 sdk 工具。

于 2013-10-29T17:58:18.330 回答