java — Построение aapt из исходного кода Android на Mac 10.9 Mavericks segfaults или дает «Illegal Instruction 4» на 10,8 горного льва

Это довольно специфический вопрос, но у меня закончились идеи, и я надеюсь на некоторые новые направления.

Я загрузил Android-источник из Android Open Source Project, следуя инструкциям здесь:

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

Я выполнил все шаги, характерные для Mac (образ диска с учетом регистра, make v3.81, дескрипторы файлов установлены на 1024) и настроил сборку на «полный обед», как было предложено на сайте. У меня есть все дерево, и с этими настройками я могу построить его, и у меня нет проблем с ним на моей машине.

В частности, я сделал некоторые изменения в aapt (в frameworks / base / tools / aapt), которые затем очищаю (make clean-aapt) и затем перестраиваю (make aapt). Строит без проблем. Когда я запускаю aapt из командной строки, он работает нормально и не вылетает. Я делаю всю эту проверку / сборку на Mac 10.9 Mavericks.

Затем я отправил недавно построенный двоичный файл aapt коллеге, работающему под управлением Mac 10.8 Mountain Lion, и он сразу же после запуска сгенерировал ошибки.

Я подумал, может быть, это мои изменения, поэтому я удалил все, что добавил. Очистить и восстановить. Та же проблема. Это определенно не мои изменения.

Я предполагаю, что мне нужно установить его для сборки с включенным флагом совместимости, но я не уверен, что установить или где его установить. У кого-нибудь есть идеи, где бы я мог посмотреть?

2

Решение

Хорошо, я понял это, поэтому я опубликую свое решение здесь ради потомков.

Между моментом создания AOSP и выпуском Mavericks местоположение SDK для Mac OSX изменилось. Он был расположен здесь:

/Developer/SDKs/MacOSX10.x.sdk где x версия, которую вы хотите использовать.

Но недавние изменения в XCode переместили новые SDK (10.8 и 10.9) в пакет XCode.app и устранили старые. Однако я нашел и загрузил набор предыдущих 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.

2

Другие решения

Других решений пока нет …