Что случилось с Android AAPT?

Я загрузил самую последнюю версию Android для Linux (android-sdk_r05-linux_86.tgz). Я пытался использовать задачу Ant для упаковки, создания и развертывания моего кода. Я должен упомянуть, что я запускаю AMD64, но у меня установлены 32-разрядные библиотеки. Задачи Android Ant все сломаны.

Во-первых, задача запуска-эмулятора никогда не запускает эмулятор. Он проходит мимо стартового adb, но затем он просто сидит там.

Во-вторых, SDK не содержит двоичный файл AAPT в каталоге инструментов. Таким образом, пример примерного примера блокнота даже не будет правильно упакован.

java.lang.IllegalStateException: не удается найти aapt внутри sdk в /home/user/bin/android -sdk-linux_86
 at com.googlecode.autoandroid.lib.AndroidTools.locateTool(AndroidTools.java:116)
на com.googlecode.autoandroid.lib.AndroidTools.startTool(AndroidTools.java:103)
 на com.googlecode.autoandroid.lib.AndroidTools.startTool(AndroidTools.java:91)
 на com.googlecode.autoandroid.lib.UnixAndroidTools.aapt(UnixAndroidTools.java:9)

У меня есть все зависимости, настроенные для Android. Я могу запустить его из командной строки просто отлично.

Я предполагаю, что код Ant не синхронизирован с последними обновлениями SDK. Может ли кто-нибудь пролить свет на эту проблему? На данный момент я рассматриваю возможность написания собственных скриптов Python для взаимодействия с Android SDK. Тьфу.

Ответ 1

Я написал три книги, используя скрипты сборки Ant для Android. Поверьте мне, они работают.

Во-первых, задача запуска эмулятора никогда запускает эмулятор. Он получает прошлый стартовый adb, но потом просто сидит есть.

Запустите команду android и запустите эмулятор из появившегося окна AVD Manager. AFAIK, нет задачи start-emulator в Ant - на самом деле, я не знаю, что когда-либо было.

Во-вторых, SDK не хватает двоичный в каталоге инструментов.

Если вы ищете $ANDROID_HOME/tools/ (где $ANDROID_HOME находится там, где вы распаковали SDK), вы не должны находить там. Этот каталог предназначен для инструментов, которые поддерживают все уровни API. Инструменты, специфичные для уровня API, такие как aapt, будут находиться в $ANDROID_HOME/platforms/$SDK/tools/ (где $SDK - это имя некоторой версии Android, например android-2.1).

Если у вас нет ничего в $ANDROID_HOME/platforms/, выполните шаг 4 инструкции .

Ответ 2

Для тех, кто работает в этом недавно, aapt снова перемещается. Теперь он находится в $ANDROID_SDK/build-tools/17.0.0.