Ошибка компиляции Android Hello-World: Intellij не может найти aapt

90

Я пытаюсь настроить среду разработки Android с помощью IntelliJ в Ubuntu 12.04. Я создаю модуль приложения для Android, но при попытке сборки получаю следующую ошибку:

android-apt-compiler: не удается запустить программу "/ home / jon / Programs / android-sdk-linux / platform-tools / aapt": java.io.IOException: error = 2, нет такого файла или каталога

Несколько часов рыскания в Интернете не помогли.

Кстати, я запустил locate aaptтерминал и обнаружил, что aaptон находится по адресу/home/jon/Programs/android-sdk-linux/build-tools/17.0.0/aapt

jonS90
источник
Что ж, спасибо за все ответы, ребята! Я переключился на форк Android Studio , и он работает нормально. Но я думаю, что другие решения, касающиеся символических ссылок или плагина android-maven, могут быть более подходящими для других пользователей intellij. Я полагаю, это будет исправлено в обновлении в течение некоторого времени ...
jonS90

Ответы:

130

Похоже, что последнее обновление для выпуска SDK r22 переместило aapt и lib jar из инструментов платформы в каталог инструментов сборки. Пока мы ждем, когда JetBrains выпустит обновление, вот быстрое исправление с помощью пары символических ссылок:

В каталоге AndroidSDK / platform-tools запустите следующее:

ln -s ../build-tools/17.0.0/aapt aapt
ln -s ../build-tools/17.0.0/lib lib

... и IntelliJ должен компилироваться как обычно.

Саймон Гест
источник
21
Привет, идеально подходит и для меня. Для информации: я запускаю Intellij под Windows, вы можете открыть приглашение DOS с правами администратора и запустить: mklink D:\Android\android-sdk\platform-tools\aapt.exe D:\Android\android-sdk\build-tools\17.0.0\aapt.exeи mklink /D D:\Android\android-sdk\platform-tools\lib D:\Android\android-sdk\build-tools\17.0.0\lib
Francesco Pez
Также пришлось добавить:ln -s ../build-tools/17.0.0/aidl aidl
xaviert
3
Если вы получаете это и запускаете aapt напрямую, также сообщает, что файл не найден, возможно, у вас проблема с 64-разрядной версией: ссылка
Томас
@FrancescoPez Не работает в XP или в системах, использующих fat32. Для WinXP: schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
еще один пользователь,
Пользователи 64-битной Windows, такие как Франческо Пез, упомянули только подсказку для путей с пробелами: поместите оба пути в кавычки, например, mklink "C: \ Program Files \ androidsdk \ sdk \ platform-tools \ aapt.exe" "C: \ Program Files \ androidsdk \ sdk \ build-tools \ android-4.3 \ aapt.exe "
Кристиан Шефер,
21

обновите свой IntelliJ до 12.1.4, используя бета-версии в качестве канала обновления введите описание изображения здесь

IHeartAndroid
источник
2
Это сработало, однако мне пришлось выбрать РАННИЕ ВЫПУСКИ, которые показали обновление .4, а затем, когда он перезапустился, я получил 3.x, который я отклонил. (Mac OS X 10.8.x)
Мартин Маркончини,
12

В Windows достаточно только скопировать aapt.exe, lib\dx.jarаdx.bat

из инструментов сборки \ android-4.2.2

к

платформенные инструменты

Radistao
источник
10

Та же проблема возникла у меня с android-studio. Но это, вероятно, относится и к IntelliJ IDE.

Однако при проверке местоположения файла я увидел, что он aaptнаходится в ожидаемом месте.

В моем случае проблема заключалась в том, что я работал с 64-разрядной Linux-системой Ubuntu, которая не могла выполнить 32-разрядный aaptисполняемый файл.

В моем случае установка 32-битных библиотек совместимости решила эту проблему: sudo apt-get install ia32-libs

Хенк Ван де Берг
источник
Кажется ia32-libs, больше не доступен для Ubuntu 13.10 и выше.
Chad Bingham
Добавить deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverseк /etc/sources.list, а затем , sudo apt-get updateа затемsudo apt-get install ia32-libs
Mendhak
6

Я решаю это с помощью линейных команд

ln -s ~/Programs/android-sdk-linux/build-tools/17.0.0/aapt ~/Programs/android-sdk-linux/platform-tools/aapt
ln -s ~/Programs/android-sdk-linux/build-tools/17.0.0/lib ~/Programs/android-sdk-linux/platform-tools/lib
таха
источник
3

Я тоже это заметил.

ADT был обновлен, и они добавили эти новые инструменты сборки, куда они все переместили. Intellijidea не обновляет пути, поэтому ищет aapt по старому пути.

Я не знаю, как это решить, поэтому дайте мне знать, если вы найдете решение ...

ОБНОВИТЬ:

Думаю, у вас всего 2 варианта:

1) Используйте Android Build studio: http://developer.android.com/sdk/installing/studio.html 2) Скопируйте (это грязно, но работает) весь контент из build-tools / 17.0.0 / в платформенные инструменты / и он будет строить

StErMi
источник
Ах, проблема с обновлением. Хорошо, я только что обнаружил, что Google выпустила Android Studio , которая является форком Intellij. Может быть, Google ожидает, что люди перейдут на Android Studio, а не обновят Intellij?
jonS90
Да, они его выпустили (взгляните на вчерашний доклад Google I / O). Это в основном JideaCommunity + больше внимания уделяется android. Затем он будет объединен с JideaPro (я на это надеюсь).
StErMi
2
Это не совсем форк, он основан на сборке программы раннего доступа. Как только эта сборка EAP станет основной IntelliJ, она будет иметь те же функции, что и Android Studio.
powerj1984
2

Спасибо за чаевые! На Mac с Android 4.2.2 SDK это отлично сработало. Вам просто нужно будет соответствующим образом обновить свои пути. Например

ln -s ../build-tools/android-4.2.2/lib lib

ln -s ../build-tools/android-4.2.2/aapt aapt

куница
источник
1

Я столкнулся с этой проблемой, но с android-maven-plugin и в качестве варианта вашего элемента № 2 вместо копирования файла (ов) я просто создал символическую / программную ссылку для aapt

cd platform-tools
ln -s ../build-tools/17.0.0/aapt ./

Такой подход, похоже, снова заставил все мои сборки работать.

Дон Х.
источник
1

Клонируйте плагин android-maven-plugin на GitHub и установите его в свое репо.

git clone https://github.com/jayway/maven-android-plugin.git
cd ... / maven-android-plugin /
mvn чистая установка

Затем обновите ваш pom, чтобы использовать версию 3.5.4-SNAPSHOT плагина. Все должно работать исправно!

птичий
источник
Обратите внимание, однако, что это исправит сборку maven, но не сборку IntelliJ. Для этого должен помочь обходной путь символьной ссылки, пока IntelliJ не исправит его.
Энди Денни
вы сможете найти версию android-maven-plugin где-нибудь в IntelliJ conf ...
avianey
встроенная система сборки IntelliJ не использует плагин android-maven. Чтобы он работал, вам нужно сделать символические ссылки. А если вы создаете символические ссылки, вам не нужно обновлять до последней копии android-maven-plugin; ссылки исправят как сборку IntelliJ, так и не последнюю версию android-maven-plugin.
Энди Денни
Да, у меня есть среда Windows. Запустите окно DOS от имени администратора, затем используйте команду mklink. Перейдите в инструменты платформы, затем создайте ссылки для aapt.exe, aidl.exe, dexdump.exe, dx.bat и lib \ dx.jar на их аналоги в build-tools \ 17.0.0 и build-tools \ 17.0. 0 \ lib. Примечание: вам нужно создать подпапку lib в платформенных инструментах.
Энди Денни
0

Я выполнил эти три команды, и моя проблема была решена

mklink "%ANDROID_HOME%\platform-tools\aapt.exe" "%ANDROID_HOME%\build-tools\17.0.0\aapt.exe"

mklink /D "%ANDROID_HOME%\platform-tools\lib" "%ANDROID_HOME%\build-tools\17.0.0\lib"

mklink "%ANDROID_HOME%\platforms\android-17\tools" "%ANDROID_HOME%\build-tools\17.0.0\aidl.exe"

Если вы не установили переменную окружения ANDROID_HOME, замените% ANDROID_HOME% на путь к вашему Android SDK, например C: \ Android \ android-sdk

Рахил
источник
0

В Mac OS вам необходимо

$ cd platform-tools
$ ln -s ../build-tools/android-4.2.2/aapt aapt
$ ln -s ../build-tools/android-4.2.2/lib lib
Александр Волков
источник
0

Еще раз Goodlife. Просто в случае такой ошибки очистите проект, и все готово.

Хорошая жизнь
источник