Błąd kompilacji Android Hello-World: Intellij nie może znaleźć pliku aapt

90

Próbuję skonfigurować środowisko programistyczne Androida przy użyciu IntelliJ w Ubuntu 12.04. Tworzę moduł aplikacji na Androida, ale kiedy próbuję budować, pojawia się następujący błąd:

android-apt-compiler: nie można uruchomić programu "/ home / jon / Programs / android-sdk-linux / platform-tools / aapt": java.io.IOException: error = 2, Brak takiego pliku lub katalogu

Kilka godzin przeszukiwania internetu nie pomogło.

Swoją drogą pobiegłem locate aaptw terminalu i stwierdziłem, że aaptznajduje się on pod adresem/home/jon/Programs/android-sdk-linux/build-tools/17.0.0/aapt

jonS90
źródło
Cóż, dzięki za wszystkie odpowiedzi! Przerzuciłem się na widelec Android Studio i działa dobrze. Myślę jednak, że inne rozwiązania dotyczące dowiązań symbolicznych lub wtyczki android-maven mogą być bardziej odpowiednie dla innych użytkowników intellij. Przypuszczam, że zostanie to naprawione w aktualizacji za jakiś czas ...
jonS90

Odpowiedzi:

130

Wygląda na to, że najnowsza aktualizacja wersji SDK r22 przeniosła aapt i jar lib z platformy-tools do katalogu build-tools. Podczas gdy czekamy, aż JetBrains wyda aktualizację, oto szybka poprawka za pomocą kilku symbolicznych linków:

Z katalogu AndroidSDK / platform-tools uruchom następujące polecenie:

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

... a IntelliJ powinien mieć możliwość normalnej kompilacji.

Simon Guest
źródło
21
Cześć, dla mnie też idealny. Dla informacji: uruchamiam Intellij pod Windows, możesz otworzyć okno DOS z uprawnieniami administratora i uruchomić: mklink D:\Android\android-sdk\platform-tools\aapt.exe D:\Android\android-sdk\build-tools\17.0.0\aapt.exei mklink /D D:\Android\android-sdk\platform-tools\lib D:\Android\android-sdk\build-tools\17.0.0\lib
Francesco Pez
Musiał też dodać:ln -s ../build-tools/17.0.0/aidl aidl
xaviert
3
Jeśli otrzymujesz to, a wykonanie aapt bezpośrednio wskazuje również, że plik nie został znaleziony, być może masz problem 64-bitowy: link
Tomas
@FrancescoPez Nie działa w XP ani w systemach używających fat32. WinXP: schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Yet Another User
Dla użytkowników Windows 64-bitowych, takich jak Francesco Pez, wspomnieli tylko o wskazówce dotyczącej ścieżek ze spacjami: umieść obie ścieżki w cudzysłowie, np. Mklink "C: \ Program Files \ androidsdk \ sdk \ platform-tools \ aapt.exe" "C: \ Program Files \ androidsdk \ sdk \ build-tools \ android-4.3 \ aapt.exe "
Christian Schäfer,
21

zaktualizuj IntelliJ do 12.1.4, używając wersji beta jako kanału aktualizacji wprowadź opis obrazu tutaj

IHeartAndroid
źródło
2
Zrobiło to, jednak musiałem wybrać WCZESNE WYDANIA, które pokazywały aktualizację .4, a po ponownym uruchomieniu otrzymałem 3.x, którego zaprzeczyłem. (Mac OS X 10.8.x)
Martin Marconcini
12

W systemie Windows, wystarczy tylko skopiować aapt.exe, lib\dx.jaridx.bat

z build-tools \ android-4.2.2

do

narzędzia platformy

radistao
źródło
10

Ten sam problem wystąpił u mnie z android-studio. Ale prawdopodobnie dotyczy to również IntelliJ IDE.

Podczas sprawdzania lokalizacji pliku zauważyłem jednak, że aaptznajdowała się ona w oczekiwanej lokalizacji.

W moim przypadku problem polegał na tym, że korzystałem z 64-bitowego systemu Linux Ubuntu, który nie może wykonać 32-bitowego aaptpliku wykonywalnego.

Zainstalowanie 32-bitowych bibliotek zgodności rozwiązało ten problem w moim przypadku: sudo apt-get install ia32-libs

Henk Van de Berg
źródło
Wygląda na ia32-libsto, że nie jest już dostępny dla Ubuntu 13.10 i nowszych.
Chad Bingham
Dodaj deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiversedo /etc/sources.list, sudo apt-get updatea następniesudo apt-get install ia32-libs
Mendhak,
6

rozwiązuję to za pomocą poleceń linii

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
taha
źródło
3

Ja też to zauważyłem.

Narzędzie ADT zostało zaktualizowane i dodali nowe narzędzia do kompilacji, w których przenieśli wszystko. Intellijidea nie aktualizuje ścieżek, więc szuka w starej ścieżce.

Nie wiem, jak to rozwiązać, więc daj mi znać, jeśli znajdziesz rozwiązanie ...

AKTUALIZACJA:

Myślę, że masz tylko 2 opcje:

1) Użyj Android Build Studio: http://developer.android.com/sdk/installing/studio.html 2) Skopiuj (to jest brudne, ale działa) całą zawartość od build-tools / 17.0.0 / do platform-tools / i będzie się budować

StErMi
źródło
Ach, problem z aktualizacją. Ok, więc właśnie odkryłem, że Google wypuściło Android Studio , które jest rozwidleniem Intellij. Może Google oczekuje, że ludzie przejdą do Android Studio zamiast aktualizować Intellij?
jonS90
Tak, wydali go (spójrz na wczorajszą prezentację Google I / O). Zasadniczo jest to JideaCommunity + bardziej skupia się na Androidzie. Następnie zostanie połączony z JideaPro (mam nadzieję).
StErMi
2
To naprawdę nie jest rozwidlenie, jest oparte na kompilacji programu wczesnego dostępu. Gdy ta kompilacja EAP stanie się główną wersją IntelliJ, będzie miała te same funkcje, co Android Studio.
powerj1984
2

Dzięki za wskazówkę! Na komputerze Mac z systemem Android 4.2.2 SDK działało to świetnie. Musisz tylko odpowiednio zaktualizować swoje ścieżki. Na przykład

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

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

martenc
źródło
1

Natknąłem się na ten problem, ale z android-maven-plugin i jako wariant twojego przedmiotu nr 2 zamiast kopiować plik (i) po prostu utworzyłem symboliczny / miękki link do aapt

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

Wydawało się, że to podejście sprawiło, że wszystkie moje kompilacje znów zaczęły działać.

Don H.
źródło
1

Sklonuj wtyczkę android-maven na GitHub i zainstaluj ją w swoim repozytorium

git clone https://github.com/jayway/maven-android-plugin.git
cd ... / maven-android-plugin /
mvn clean install

Następnie zaktualizuj pom, aby korzystał z wersji 3.5.4-SNAPSHOT wtyczki. Wszystko powinno działać poprawnie!

avianey
źródło
Należy jednak pamiętać, że to naprawi kompilację mavena, ale nie naprawi kompilacji IntelliJ. W tym celu obejście dowiązania symbolicznego powinno pomóc, dopóki IntelliJ go nie naprawi.
Andy Dennie
powinieneś być w stanie znaleźć wersję android-maven-plugin gdzieś w IntelliJ conf ...
avianey
wbudowany system kompilacji IntelliJ nie używa wtyczki android-maven. Aby to działało, musisz wykonać dowiązania symboliczne. A jeśli zrobisz dowiązania symboliczne, nie powinieneś aktualizować do najnowszej migawki wtyczki android-maven; linki naprawią zarówno kompilację IntelliJ, jak i nie najnowszą wersję wtyczki android-maven.
Andy Dennie
Tak, mam środowisko Windows. Uruchom okno DOS jako administrator, a następnie użyj polecenia mklink. Przejdź do platform-tools, a następnie utwórz łącza dla aapt.exe, aidl.exe, dexdump.exe, dx.bat i lib \ dx.jar do ich odpowiedników w build-tools \ 17.0.0 i build-tools \ 17.0. 0 \ lib. Uwaga: musisz utworzyć podfolder lib w platformie-tools.
Andy Dennie
0

Uruchomiłem te trzy polecenia i mój problem został rozwiązany

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"

Jeśli nie ustawiłeś zmiennej środowiskowej ANDROID_HOME, zastąp% ANDROID_HOME% ścieżką do twojego Android SDK, np. C: \ Android \ android-sdk

Raheel
źródło
0

W systemie Mac OS musisz

$ cd platform-tools
$ ln -s ../build-tools/android-4.2.2/aapt aapt
$ ln -s ../build-tools/android-4.2.2/lib lib
Alexander Volkov
źródło
0

Znowu dobre życie. Po prostu w razie takiego błędu wyczyść projekt i gotowe.

Dobre życie
źródło