Wiem, że istnieje wiele tych tematów, ale w moim przypadku nic nie pomoże i nie opiszę ich dokładnie. Najlepszy podobny to aapt not found under the right path.Błąd wykonywania aapt, nagle
Moim problemem jest to, że mogę używać Eclipse do całonocnego programowania, kompilowania i korzystania z mojego urządzenia, a potem nagle pojawia się "błąd przy wykonywaniu aapt" dla mojego obecnego projektu i oczywiście R.java nie jest (poprawnie) generowane już. Następnie restartuję Eclipse i wszystko znika. Widzę to jednak średnio raz dziennie.
Niedawno zmieniłem system na amd64 i zainstalowałem najnowszy pakiet SDK dla systemu Android-2.3 oraz odpowiednie narzędzia. Wiem, że istnieje teraz folder narzędzi platformy, który ma wersję Aapt, która powinna działać niezależnie w wersji SDK. Na początku dodałem ten katalog do mojej PATH, zgodnie z instrukcją na stronie SDK. Próbowałem też nie dodawać go do mojej ścieżki i tworzyć platformy linków/android-9/tools, aby każda wersja SDK mogła używać swojej starej kopii. Nie trzeba dodawać, że platform-tools/aapt jest tam i ma odpowiednie uprawnienia, a ja byłem w stanie wykonać go w wierszu poleceń w dowolnym momencie.
Kiedy piszę wadliwy plik xml lub sortuję, i odpowiednio pojawia się błąd, widzę dodatkowy wiersz z napisem "aapt: /lib32/libz.so.1: brak informacji o wersji". Używam najnowszego systemu linuxowego Gentoo. Mam wszystko zainstalowane, aby obsługiwać x86 na amd64, ale ponownie pojawiły się emul-linux-x86-baselibs i zlib tylko dla pewności. Problem nadal występuje. Widzę niektóre pages, które przeliterować horror niektórych błędów ZliB, ale nie jestem pewien, czy jest to związane. Zdaję sobie sprawę, że nie jestem na popularnej platformie Ubuntu, ale z pewnością różnica nie może być tak wielka?
Może to być błąd w oprogramowaniu aapt lub w samych narzędziach. Dlaczego nagle przestałby działać? Doświadczyłem również, że identyfikatory w R.java były niepoprawne, a mianowicie, że prosty kod findViewById() dawałby ClassCastExceptions z powodu mieszanych identyfikatorów jednorazowo, a następnie działał idealnie bez żadnych zmian, ale tylko "czysty projekt", w następstwie nieudany aapt.
Wreszcie, mam uruchomić kilka poleceń na aapt, które wydają się nie dodawać żadnych dodatkowych informacji:
#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
Czy ktoś może powiedzieć nic złego z mojej konfiguracji? Czy to może pachnieć jak robak (inaczej powiedzmy to (znowu))?
Aktualizacja 2010-01-06:
ja otrzymałem więcej wiedzy. Kiedy ostatnio próbowałem wyeksportować podpisaną apk, natknąłem się na inny komunikat o błędzie (pełne szczegóły z widoku błędu Eclipse) dotyczące wcześniejszej nieobecności. Zauważ tutaj również, że mogę po prostu ponownie uruchomić Eclipse i ponownie wyeksportować apki bez problemów, przynajmniej na chwilę.
Zaczynam myśleć, że jest to związane z brakiem pamięci w moim systemie. Komunikat "onvoldoende geheugen beschikbaar" oznacza "niewystarczającą dostępną pamięć".
Występują również niewystarczające błędy pamięci w DDMS podczas usuwania plików HPROF.
Oto dziennik błędów (skrócony):
!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
to rozwiązać mój problem z aapt; dzięki! – Andrew
Uważaj. Mój 1,5-letni SSD właśnie zmarł nagle tydzień temu. Prawdopodobnie nie jest to powiązane i nie używałem Eclipse, gdy umarł, ale nadal ... – pjv
Dzięki za ostrożność. Z jakiegoś powodu obiekt overcommit_memory się nie trzymał, a teraz nie mogę zmienić żadnej z flag w/proc/sys/vm, nawet jako root. W ramach obejścia problemu zepsułem partycję wymiany na mojej maszynie wirtualnej o pojemności do 3 GB, która wydaje się zapewniać systemowi radość. – Andrew