Erreur de compilation Android Hello-World: Intellij ne trouve pas aapt


90

J'essaie de me mettre en place avec un environnement de développement Android utilisant IntelliJ dans Ubuntu 12.04. Je crée un module d'application Android, mais lorsque j'essaie de créer, j'obtiens l'erreur suivante:

android-apt-compiler: impossible d'exécuter le programme "/ home / jon / Programs / android-sdk-linux / platform-tools / aapt": java.io.IOException: error = 2, aucun fichier ou répertoire de ce type

Plusieurs heures à parcourir Internet n'ont pas aidé.

Au fait, j'ai couru locate aaptdans le terminal et j'ai trouvé qu'il aaptse trouve à/home/jon/Programs/android-sdk-linux/build-tools/17.0.0/aapt


Eh bien, merci pour toutes les réponses les gars! Je suis passé à la fourche Android Studio et cela fonctionne très bien. Mais je pense que les autres solutions concernant les liens symboliques ou le plugin android-maven peuvent être plus appropriées pour d'autres utilisateurs d'intellij. Je suppose que cela sera corrigé dans une mise à jour dans une question de temps ...
jonS90

Réponses:


130

Il semble que la dernière mise à jour de la version du SDK r22 a déplacé aapt et le lib jar du répertoire platform-tools vers le répertoire build-tools. En attendant que JetBrains publie une mise à jour, voici une solution rapide en utilisant quelques liens symboliques:

À partir de votre répertoire AndroidSDK / platform-tools, exécutez ce qui suit:

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

... et IntelliJ devrait pouvoir compiler normalement.


21
Salut, parfait pour moi aussi. Juste pour info: j'exécute Intellij sous Windows, vous pouvez ouvrir une invite DOS avec des privilèges d'administrateur, et exécuter: mklink D:\Android\android-sdk\platform-tools\aapt.exe D:\Android\android-sdk\build-tools\17.0.0\aapt.exeet mklink /D D:\Android\android-sdk\platform-tools\lib D:\Android\android-sdk\build-tools\17.0.0\lib
Francesco Pez

Il fallait également ajouter:ln -s ../build-tools/17.0.0/aidl aidl
xaviert

3
Si vous obtenez cela et que l'exécution directe de aapt indique également que le fichier est introuvable, vous rencontrez peut-être un problème 64 bits: lien
Tomas

@FrancescoPez Ne fonctionne pas sous XP ou dans les systèmes utilisant fat32. Pour WinXP: schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Yet Another User

Pour les utilisateurs de Windows 64Bit comme Francesco Pez n'a mentionné que le conseil pour les chemins avec des espaces: mettez les deux chemins entre guillemets, par exemple 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

mettez à jour votre IntelliJ vers la version 12.1.4 en utilisant les versions bêta comme canal de mise à jour entrez la description de l'image ici


2
Cela l'a fait, cependant, j'ai dû sélectionner EARLY RELEASES, qui montrait la mise à jour .4, puis quand il a redémarré, j'ai eu le 3.x que j'ai refusé. (Mac OS X 10.8.x)
Martin Marconcini

12

Sous Windows, il suffit de copier uniquement aapt.exe, lib\dx.jaretdx.bat

depuis build-tools \ android-4.2.2

à

outils-plateforme


10

Le même problème s'est produit pour moi avec android-studio. Mais cela s'applique probablement également à IntelliJ IDE.

Lors de la vérification de l'emplacement du fichier, j'ai vu, cependant, qu'il aaptétait à l'emplacement prévu.

Dans mon cas, le problème était que j'exécutais un système Linux Ubuntu 64 bits qui ne peut pas exécuter l' aaptexécutable 32 bits .

L'installation de bibliothèques de compatibilité 32 bits a résolu ce problème dans mon cas: sudo apt-get install ia32-libs


Il semble qu'il ia32-libsne soit plus disponible pour Ubuntu 13.10 et plus.
Chad Bingham

Ajouter deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverseà /etc/sources.list, puis sudo apt-get updateet puissudo apt-get install ia32-libs
Mendhak

6

Je le résous avec ceci pour aligner les commandes

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

Je l'ai aussi remarqué.

ADT a été mis à jour et ils ont ajouté ces nouveaux outils de construction où ils ont tout déplacé. Intellijidea ne met pas à jour les chemins, il recherche donc un ajustement dans l'ancien chemin.

Je ne sais pas comment le résoudre, alors faites-moi savoir si vous trouvez une solution ...

METTRE À JOUR:

Je pense que vous n'avez que 2 options:

1) Utilisez le studio Android Build: http://developer.android.com/sdk/installing/studio.html 2) Copiez (c'est sale mais fonctionne) tout le contenu de build-tools / 17.0.0 / vers platform-tools / et ça va construire


Ah, un problème de mise à jour. Ok, donc je viens de découvrir que Google a publié Android Studio , qui est un fork d'Intellij. Peut-être que Google s'attend à ce que les gens passent à Android Studio plutôt que de mettre à jour Intellij?
jonS90

Oui, ils l'ont publié (jetez un œil à la keynote de Google I / O hier). Il s'agit essentiellement de JideaCommunity + plus de concentration sur Android. Ensuite, il sera fusionné avec JideaPro (je l'espère).
StErMi

2
Ce n'est pas vraiment un fork, il est basé sur la version Early Access Program. Une fois que cette version EAP devient IntelliJ principale, elle aura les mêmes fonctionnalités qu'Android Studio.
powerj1984


2

Merci pour le conseil! Sur un Mac exécutant le SDK Android 4.2.2, cela fonctionnait très bien. Vous aurez juste besoin de mettre à jour vos chemins en conséquence. Par exemple

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

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


1

J'ai rencontré ce problème mais avec android-maven-plugin et en tant que variante de votre élément n ° 2 plutôt que de copier le (s) fichier (s), j'ai simplement créé un lien symbolique / logiciel pour aapt

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

Cette approche a semblé faire fonctionner à nouveau toutes mes constructions.


1

Clonez le plugin android-maven-plugin sur GitHub et installez-le dans votre référentiel

git clone https://github.com/jayway/maven-android-plugin.git
cd ... / maven-android-plugin /
mvn installation propre

Ensuite, mettez à jour votre pom pour utiliser la version 3.5.4-SNAPSHOT du plugin. Tout doit fonctionner correctement!


Notez, cependant, que cela corrigera la version maven, mais pas la version IntelliJ. Pour cela, la solution de contournement du lien symbolique devrait aider jusqu'à ce qu'IntelliJ le corrige.
Andy Dennie

vous devriez pouvoir trouver la version android-maven-plugin quelque part dans la conf IntelliJ ...
avianey

le système de construction IntelliJ intégré n'utilise pas android-maven-plugin. Pour que cela fonctionne, vous devez faire les liens symboliques. Et si vous faites les liens symboliques, vous ne devriez pas avoir besoin de mettre à jour le dernier instantané de android-maven-plugin; les liens corrigeront à la fois la construction d'IntelliJ et la version non la plus récente d'android-maven-plugin.
Andy Dennie

Oui, j'ai un environnement Windows. Démarrez une fenêtre DOS en tant qu'administrateur, puis utilisez la commande mklink. Accédez à platform-tools, puis créez des liens pour aapt.exe, aidl.exe, dexdump.exe, dx.bat et lib \ dx.jar vers leurs homologues dans build-tools \ 17.0.0 et build-tools \ 17.0. 0 \ lib. Remarque: vous devrez créer le sous-dossier lib sous platform-tools.
Andy Dennie

0

J'ai exécuté ces trois commandes et mon problème a été résolu

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"

Si vous n'avez pas défini la variable d'environnement ANDROID_HOME, remplacez% ANDROID_HOME% par le chemin d'accès à votre SDK Android, par exemple C: \ Android \ android-sdk


0

Sous Mac OS, vous devez

$ 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 encore une fois. Juste en cas d'un tel projet de nettoyage d'erreur et vous êtes prêt à partir.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.