这是一个非常具体的问题,但我已经没有想法,我希望有一些新方向。
我已按照此处的说明从Android开源项目下载了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的同事,并在执行后立即进行段错误。
我想也许这是我的改动,所以我删除了我添加的所有内容。清洁和重建。同样的问题。这绝对不是我的改变。
我的猜测是我需要将其设置为启用了一些兼容性标志,但我不确定要设置什么或在何处设置它。有没有人有我想看的想法?
答案 0 :(得分:2)
好的,我明白了,所以为了后代,我会在这里发布我的解决方案。
在AOSP成立和Mavericks发布之间,Mac OSX SDK的位置发生了变化。它曾经位于这里:
/Developer/SDKs/MacOSX10.x.sdk
其中x
是您要使用的版本。
但最近对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
完美无缺。这构建了一组自定义的sdk工具,与旧版本的Mac OSX兼容。