Errore di compilazione Android Hello-World: Intellij non riesce a trovare aapt


90

Sto cercando di configurare un ambiente di sviluppo Android utilizzando IntelliJ in Ubuntu 12.04. Creo un modulo dell'applicazione Android, ma quando provo a compilare ottengo il seguente errore:

compilatore android-apt: impossibile eseguire il programma "/ home / jon / Programs / android-sdk-linux / platform-tools / aapt": java.io.IOException: errore = 2, nessun file o directory di questo tipo

Diverse ore passate a setacciare Internet non hanno aiutato.

A proposito, sono corso locate aaptnel terminale e ho scoperto che aaptsi trova in/home/jon/Programs/android-sdk-linux/build-tools/17.0.0/aapt


Bene, grazie per tutte le risposte ragazzi! Sono passato al fork di Android Studio e funziona perfettamente. Ma penso che le altre soluzioni riguardanti i collegamenti simbolici o il plug-in Android-maven potrebbero essere più appropriate per altri utenti di intellij. Suppongo che questo verrà risolto in un aggiornamento in una questione di tempo ...
jonS90

Risposte:


130

Sembra che l'ultimo aggiornamento alla versione r22 SDK abbia spostato aapt e lib jar dalla directory platform-tools alla directory build-tools. Mentre aspettiamo che JetBrains rilasci un aggiornamento, ecco una soluzione rapida utilizzando un paio di collegamenti simbolici:

Dalla directory AndroidSDK / platform-tools, esegui quanto segue:

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

... e IntelliJ dovrebbe essere in grado di compilare normalmente.


21
Ciao, perfetto anche per me. Solo per info: eseguo Intellij sotto Windows, puoi aprire un prompt DOS con privilegi di amministratore, ed eseguire: mklink D:\Android\android-sdk\platform-tools\aapt.exe D:\Android\android-sdk\build-tools\17.0.0\aapt.exee mklink /D D:\Android\android-sdk\platform-tools\lib D:\Android\android-sdk\build-tools\17.0.0\lib
Francesco Pez

Inoltre ha dovuto aggiungere:ln -s ../build-tools/17.0.0/aidl aidl
xaviert

3
Se si riceve questo messaggio e si esegue direttamente aapt si dice anche che il file non è stato trovato, è possibile che si verifichi un problema a 64 bit: collegamento
Tomas

@FrancescoPez Non funziona in XP o in sistemi che utilizzano fat32. Per WinXP: schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Yet Another User

Per gli utenti di Windows 64Bit come Francesco Pez ha menzionato solo il suggerimento per i percorsi con spazi: mettere entrambi i percorsi tra virgolette, ad esempio 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

aggiorna il tuo IntelliJ alla 12.1.4 utilizzando le versioni beta come canale di aggiornamento inserisci qui la descrizione dell'immagine


2
Questo ha funzionato, tuttavia, ho dovuto selezionare EARLY RELEASES, che mostrava l'aggiornamento .4, quindi quando si è riavviato ho ottenuto il 3.x che ho negato. (Mac OS X 10.8.x)
Martin Marconcini

12

In Windows è sufficiente copiare solo aapt.exe,lib\dx.jar edx.bat

a partire dal build-tools \ android-4.2.2

per

strumenti della piattaforma


10

Lo stesso problema si è verificato per me con android-studio. Ma questo probabilmente si applica anche all'IDE di IntelliJ.

Tuttavia, durante il controllo del percorso del file, l'ho visto aapt trovava nella posizione prevista.

Nel mio caso il problema era che stavo eseguendo un sistema Linux Ubuntu a 64 bit che non può eseguire il 32 bit aapt eseguibile a .

L'installazione di librerie di compatibilità a 32 bit ha risolto questo problema nel mio caso: sudo apt-get install ia32-libs


Sembra che ia32-libsnon sia più disponibile per Ubuntu 13.10 e versioni successive.
Chad Bingham

Aggiungi deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiversea /etc/sources.list, poi sudo apt-get updatee poisudo apt-get install ia32-libs
Mendhak

6

lo risolvo con questo comando di riga

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

L'ho notato anche io.

ADT è stato aggiornato e hanno aggiunto questi nuovi strumenti di build dove hanno spostato tutto. Intellijidea non aggiorna i percorsi, quindi cerca in modo appropriato nel vecchio percorso.

Non so come risolverlo, quindi fammi sapere se trovi una soluzione ...

AGGIORNARE:

Penso che tu abbia solo 2 opzioni:

1) Usa Android Build Studio: http://developer.android.com/sdk/installing/studio.html 2) Copia (questo è sporco ma funziona) tutto il contenuto da build-tools / 17.0.0 / a platform-tools / e costruirà


Ah, un problema di aggiornamento. Ok, quindi ho appena scoperto che Google ha rilasciato Android Studio , che è un fork di Intellij. Forse Google si aspetta che le persone passino ad Android Studio invece di aggiornare Intellij?
jonS90

Sì, l'hanno rilasciato (dai un'occhiata al keynote di Google I / O di ieri). È fondamentalmente JideaCommunity + più focus su Android. Quindi verrà unito a JideaPro (lo spero).
StErMi

2
Non è davvero un fork, si basa sulla build del programma di accesso anticipato. Una volta che la build EAP diventa IntelliJ mainline, avrà le stesse funzionalità di Android Studio.
powerj1984


2

Grazie per il consiglio! Su un Mac con Android 4.2.2 SDK, ha funzionato alla grande. Dovrai solo aggiornare i tuoi percorsi di conseguenza. Per esempio

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

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


1

Mi sono imbattuto in questo problema ma con android-maven-plugin e come variante del tuo articolo n. 2 invece di copiare i file ho semplicemente creato un link simbolico / soft per aapt

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

Questo approccio sembrava far funzionare di nuovo tutte le mie build.


1

Clona il plugin android-maven su GitHub e installalo nel tuo repository

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

Quindi aggiorna il tuo pom per utilizzare la versione 3.5.4-SNAPSHOT del plugin. Tutto dovrebbe funzionare correttamente!


Si noti, tuttavia, che questo risolverà la build Maven, ma non la build IntelliJ. Per questo, la soluzione alternativa del collegamento simbolico dovrebbe aiutare fino a quando IntelliJ non lo risolverà.
Andy Dennie

dovresti essere in grado di trovare la versione del plugin android-maven da qualche parte nella
configurazione di

il sistema di compilazione IntelliJ integrato non utilizza il plugin android-maven. Per farlo funzionare, dovresti fare i collegamenti simbolici. E se fai i link simbolici, non dovresti aver bisogno di aggiornare all'ultima istantanea di android-maven-plugin; i collegamenti risolveranno sia la build IntelliJ che la versione non più recente di android-maven-plugin.
Andy Dennie

Sì, ho un ambiente Windows. Avvia una finestra DOS come amministratore, quindi utilizza il comando mklink. Vai su platform-tools, quindi crea collegamenti per aapt.exe, aidl.exe, dexdump.exe, dx.bat e lib \ dx.jar alle loro controparti in build-tools \ 17.0.0 e build-tools \ 17.0. 0 \ lib. Nota: dovrai creare la sottocartella lib in platform-tools.
Andy Dennie

0

Ho eseguito questi tre comandi e il mio problema è stato risolto

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"

Se non hai impostato la variabile ambientale ANDROID_HOME, sostituisci% ANDROID_HOME% con il percorso del tuo SDK Android, ad esempio C: \ Android \ android-sdk


0

Su Mac OS è necessario

$ 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 ancora una volta. Solo in caso di un tale errore, pulire il progetto e sei a posto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.