Как диагностировать ошибку "Ошибка выполнения aapt" в Eclipse?
Я готов вырвать волосы, потому что я не могу заставить Eclipse отклеиваться от состояния, где он думает, что не может найти aapt:
Error executing aapt. Please check aapt is present at /usr/local/android-sdk-linux_x86/platform-tools/aapt
Я нашел несколько сообщений по этому вопросу, которые предполагают удаление ошибки в пользовательском интерфейсе Eclipse, удаление R.java, восстановление проекта, перезапуск Eclipse и т.д. Эти вещи помогают временно, но как только я редактирую XML файл, Eclipse снова закручивается. Это становится очень раздражающим, чтобы перестроить весь исходный код и перезапустить Eclipse каждый раз, когда я меняю XML файл.
aapt явно там:
$ ls -l /usr/local/android-sdk-linux_x86/platform-tools/aapt
-rwxr-xr-x 1 boris boris 3764858 2011-07-28 11:50 /usr/local/android-sdk-linux_x86/platform-tools/aapt
Есть ли способ точно узнать, что такое ошибка? Я попытался посмотреть на выходе консоли Eclipse и в .metadata/.log в моем проекте и не видел ничего связанного.
Ответы
Ответ 1
Убейте это снова сегодня и обнаружил, что подробный вывод от aapt не помогает. Он просто выплевывает команду aapt на консоль и выходит из строя без ошибок.
Я думаю, что, наконец, я понял, что происходит не так. Я считаю, что апат терпит неудачу из-за недостаточной памяти. В моем процессе Eclipse использовалось 1,2 ГБ памяти. Когда Eclipse запускает aapt, он разворачивает процесс, который, как я понимаю, выделяет еще 1,2 ГБ только для запуска aapt.
Я просмотрел список процессов и увидел, что Firefox использует почти 400 МБ памяти. Я убил Firefox, а затем аапт начал работать. Сумасшедший.
Ответ 2
Наконец нашел ответ на мой вопрос здесь:
http://groups.google.com/group/android-developers/browse_thread/thread/bad9d488d2068260
Оказывается, вы можете увидеть команду aapt и вывести, установив "Build output" в "Verbose" в Preferences/Android/Build. Странно, что они не выплевывают вывод при возникновении ошибки.
Ответ 3
В моем случае (новая установка Eclipse, новый проект, созданный с помощью мастера, такие ошибки, как "Не удалось разрешить переменную R в переменной" ), проблема оказалась отсутствующей конечной косой чертой в пути к Android SDK на Preferences- > Android.
Ответ 4
Подсказка (предложенная Eclipse на Ubuntu): в 64-битных системах убедитесь, что установлены 32-битные библиотеки: sudo apt-get install ia32-libs
Это решило мою проблему!
Ответ 5
У меня было это из-за ошибочного идентификатора в одном из файлов ресурсов. Я использую Android Studio (но не gradle), и я имел в объявлении стиля ссылку на @+id/...
, которая не разрешена, по-видимому. Я должен был объявить ID в другом файле xml-значений как <item type="id" name="..." />
.
Ответ 6
Эта ошибка может быть вызвана недопустимым идентификатором, например
android:icon="@drawable/ic_action_search_whatever"
Если нет выделенного вызова ic_action_search_, то какой бы умник не погиб. Простая ошибка, но не простая отладка!
Ответ 7
В моем случае "Android SDK Build Tools" (версия 20.0) как-то сломался. Поэтому я обновил инструмент до последней версии (21.1), используя "Android SDK Manager" и voila - все получилось:).
Ответ 8
Aapt - это 32-битное приложение. Я бегу ubuntu 64bit. Мне нужны были дополнительные библиотеки.
Чтобы получить работу aapt (это также устранило мои проблемы с avd), просто запустите эти две команды:
sudo apt-get install lib32stdС++ 6
sudo apt-get install lib32z1
Наслаждайтесь
Ответ 9
Я действительно заметил, что я преобразовал файл jpg в файл png, из-за чего произошла ошибка aapt.