Я знаю, что вокруг много таких тем, но ни одна из них, похоже, не помогает в моем случае и не описывает это точно. Лучший аналогичный aapt не найден по правильному пути .
Моя проблема в том, что я могу использовать Eclipse для программирования в течение всего вечера, компилировать и использовать свое устройство, а затем внезапно я получаю «ошибку при выполнении aapt» для моего текущего проекта, и, конечно, R.java не генерируется (должным образом) больше. Затем я перезапускаю Eclipse, и все уходит. Однако в среднем я вижу это раз в день.
Я недавно переключился на amd64 и установил последнюю версию Android-2.3 SDK и соответствующие инструменты. Я знаю, что сейчас есть папка platform-tools, которая имеет версию aapt, которая должна работать независимо от версии SDK. Сначала я добавил этот каталог в свой PATH, как указано на веб-сайте SDK. Я также попытался не добавлять его к моему пути и создать ссылку платформы / android-9 / tools, чтобы каждая версия SDK могла использовать свою собственную старую копию. Само собой разумеется, платформа-инструменты / aapt есть и имеет необходимые разрешения, и я смог выполнить его в командной строке в любое время.
Когда я пишу неисправный XML-файл или сортировку и, соответственно, получаю сообщение об ошибке, я вижу дополнительную строку, которая говорит: «aapt: /lib32/libz.so.1: информация о версии недоступна». Я использую последнюю систему Gentoo Linux. У меня все установлено для поддержки x86 на amd64, но я перезапустил emul-linux-x86-baselibs и zlib, чтобы быть уверенным. Проблема сохраняется. Я вижу страниц , которые вызывают ужас над некоторыми ошибками в zlib, но я не уверен, что это связано. Я понимаю, что не на эталонной платформе Ubuntu, но, конечно, разница не может быть такой большой?
Это вполне может быть ошибка в aapt или в самом инструменте. С чего бы это вдруг перестало работать? Я также испытываю, что идентификаторы в R.java были неправильными, а именно, что простой код findViewById () мог бы дать ClassCastExceptions из-за смешанных идентификаторов один раз, а затем работать без каких-либо изменений, кроме только «чистого проекта», после неудавшаяся тревога.
Наконец, я выполнил несколько команд на aapt, которые, кажется, не добавляют никакой дополнительной информации:
#ldd aapt
./aapt: /lib32/libz.so.1: no version information available (required by ./aapt)
linux-gate.so.1 => (0xffffe000)
librt.so.1 => /lib32/librt.so.1 (0x4f864000)
libpthread.so.0 => /lib32/libpthread.so.0 (0x4f849000)
libz.so.1 => /lib32/libz.so.1 (0xf7707000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.4/32/libstdc++.so.6 (0x415e9000)
libm.so.6 => /lib32/libm.so.6 (0x4f876000)
libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0x4fac6000)
libc.so.6 => /lib32/libc.so.6 (0x4f5ed000)
/lib/ld-linux.so.2 (0x4f5ca000)
#file aapt
aapt: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
Кто-нибудь может сказать что-нибудь не так с моей конфигурацией? Возможно, пахнет как ошибка (в противном случае давайте сообщим (снова))?
Обновление 2010-01-06:
Я получил больше знаний. Когда я недавно пытался экспортировать подписанный apk, я столкнулся с другим сообщением об ошибке (полная информация из представления об ошибке Eclipse) относительно aapt, которого я раньше не видел. Также обратите внимание, что я могу просто перезапустить Eclipse и снова без проблем экспортировать apks, по крайней мере, на некоторое время.
Я начинаю думать, что это связано с нехваткой памяти в моей системе. Сообщение «onvoldoende geheugen beschikbaar» означает «недостаточно памяти».
Я также обнаружил недостаточные ошибки памяти в DDMS при выводе файлов HPROF.
Вот журнал ошибок (сокращенно):
!ENTRY com.android.ide.eclipse.adt 4 0 2011-01-05 23:11:16.097
!MESSAGE Export Wizard Error
!STACK 1
org.eclipse.core.runtime.CoreException: Failed to export application
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(Unknown Source)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: com.android.ide.eclipse.adt.internal.build.AaptExecException: Error executing aapt. Please check aapt is present at /opt/android-sdk/android-sdk-linux_x86-1.6_r1/platform-tools/aapt
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeAapt(Unknown Source)
at com.android.ide.eclipse.adt.internal.build.BuildHelper.packageResources(Unknown Source)
... 5 more
Caused by: java.io.IOException: Cannot run program "/opt/android-sdk/android-sdk-linux_x86-1.6_r1/platform-tools/aapt": java.io.IOException: error=12, Onvoldoende geheugen beschikbaar
...
Caused by: java.io.IOException: java.io.IOException: error=12, Onvoldoende geheugen beschikbaar
...
!SUBENTRY 1 com.android.ide.eclipse.adt 4 0 2011-01-05 23:11:16.098
!MESSAGE Failed to export application
!STACK 0
com.android.ide.eclipse.adt.internal.build.AaptExecException: Error executing aapt. Please check aapt is present at /opt/android-sdk/android-sdk-linux_x86-1.6_r1/platform-tools/aapt
at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeAapt(Unknown Source)
at com.android.ide.eclipse.adt.internal.build.BuildHelper.packageResources(Unknown Source)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(Unknown Source)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(Unknown Source)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.io.IOException: Cannot run program "/opt/android-sdk/android-sdk-linux_x86-1.6_r1/platform-tools/aapt": java.io.IOException: error=12, Onvoldoende geheugen beschikbaar
...
Caused by: java.io.IOException: java.io.IOException: error=12, Onvoldoende geheugen beschikbaar