Kompilierungsfehler für Android Hello-World: Intellij kann aapt nicht finden


90

Ich versuche, mit IntelliJ in Ubuntu 12.04 eine Android-Entwicklungsumgebung einzurichten. Ich erstelle ein Android-Anwendungsmodul, aber beim Versuch, es zu erstellen, wird die folgende Fehlermeldung angezeigt:

android-apt-compiler: Programm "/ home / jon / Programme / android-sdk-linux / platform-tools / aapt" kann nicht ausgeführt werden: java.io.IOException: error = 2, Keine solche Datei oder kein solches Verzeichnis

Mehrere Stunden im Internet zu suchen hat nicht geholfen.

Übrigens bin ich locate aaptim Terminal gelaufen und habe festgestellt, dass aaptsich das bei befindet/home/jon/Programs/android-sdk-linux/build-tools/17.0.0/aapt


Nun, danke für all die Antworten Jungs! Ich habe auf die Android Studio- Gabel umgestellt und es funktioniert einwandfrei. Aber ich denke, die anderen Lösungen in Bezug auf Symlinks oder das Android-Maven-Plugin sind möglicherweise besser für andere Intellij-Benutzer geeignet. Ich nehme an, dies wird in
kürzester

Antworten:


130

Es scheint, dass das neueste Update der r22 SDK-Version aapt und die lib jar von den Plattform-Tools in das Build-Tools-Verzeichnis verschoben hat. Während wir darauf warten, dass JetBrains ein Update veröffentlicht, finden Sie hier eine schnelle Lösung mit einigen symbolischen Links:

Führen Sie in Ihrem AndroidSDK / platform-tools-Verzeichnis Folgendes aus:

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

... und IntelliJ sollte normal kompilieren können.


21
Hallo, auch perfekt für mich. Nur zur Information: Ich führe Intellij unter Windows aus. Sie können eine DOS-Eingabeaufforderung mit Administratorrechten öffnen und Folgendes ausführen: mklink D:\Android\android-sdk\platform-tools\aapt.exe D:\Android\android-sdk\build-tools\17.0.0\aapt.exeund mklink /D D:\Android\android-sdk\platform-tools\lib D:\Android\android-sdk\build-tools\17.0.0\lib
Francesco Pez

ln -s ../build-tools/17.0.0/aidl aidl
Musste auch

3
Wenn Sie dies erhalten und aapt direkt ausführen, heißt es auch, dass die Datei nicht gefunden wurde, liegt möglicherweise ein 64-Bit-Problem vor: link
Tomas

@FrancescoPez Funktioniert nicht in XP oder in Systemen, die fat32 verwenden. Für WinXP
Noch ein Benutzer

Für Windows 64Bit-Benutzer wie Francesco Pez wurde nur der Hinweis für Pfade mit Leerzeichen erwähnt: Setzen Sie beide Pfade in Anführungszeichen, z. B. mklink "C: \ Programme \ androidsdk \ sdk \ platform-tools \ aapt.exe" "C: \ Programme \ androidsdk \ sdk \ build-tools \ android-4.3 \ aapt.exe "
Christian Schäfer

21

Aktualisieren Sie Ihren IntelliJ auf 12.1.4, indem Sie Beta-Versionen als Update-Kanal verwenden Geben Sie hier die Bildbeschreibung ein


2
Dies tat es jedoch, ich musste EARLY RELEASES auswählen, das das .4-Update zeigte, und als es neu gestartet wurde, bekam ich das 3.x, das ich ablehnte. (Mac OS X 10.8.x)
Martin Marconcini

12

In Windows ist es genug , nur zu kopieren aapt.exe, lib\dx.jarunddx.bat

von build-tools \ android-4.2.2

zu

Plattform-Tools


10

Das gleiche Problem trat bei mir mit Android-Studio auf. Dies gilt jedoch wahrscheinlich auch für die IntelliJ IDE.

Als ich den Speicherort der Datei überprüfte, sah ich jedoch, dass sich aaptdieser am erwarteten Speicherort befand.

In meinem Fall bestand das Problem darin, dass ich ein 64-Bit-Ubuntu-Linux-System ausführte, das die aaptausführbare 32-Bit- Datei nicht ausführen kann .

Die Installation von 32-Bit-Kompatibilitätsbibliotheken hat dieses Problem in meinem Fall behoben: sudo apt-get install ia32-libs


Es scheint ia32-libsnicht mehr für Ubuntu 13.10 und höher verfügbar zu sein.
Chad Bingham

In deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiversezu /etc/sources.list, dann sudo apt-get updateund dannsudo apt-get install ia32-libs
Mendhak

6

Ich löse es damit, Befehle zu zeilen

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

Ich habe es auch bemerkt.

ADT wurde aktualisiert und sie haben diese neuen Build-Tools hinzugefügt, in denen sie alles verschoben haben. Intellijidea aktualisiert keine Pfade und sucht daher nach dem alten Pfad.

Ich weiß nicht, wie ich es lösen soll, also lass es mich wissen, wenn du eine Lösung findest ...

AKTUALISIEREN:

Ich denke, dass Sie nur 2 Optionen haben:

1) Verwenden Sie Android Build Studio: http://developer.android.com/sdk/installing/studio.html 2) Kopieren Sie (dies ist schmutzig, funktioniert aber) alle Inhalte von Build-Tools / 17.0.0 / nach Platform-Tools / und es wird bauen


Ah, ein Update-Problem. Ok, ich habe gerade festgestellt, dass Google Android Studio veröffentlicht hat , eine Gabelung von Intellij. Vielleicht erwartet Google, dass Benutzer zu Android Studio wechseln, anstatt Intellij zu aktualisieren?
JonS90

Ja, sie haben es veröffentlicht (sehen Sie sich die gestrige Google I / O-Keynote an). Es ist im Grunde JideaCommunity + mehr Fokus auf Android. Dann wird es mit JideaPro zusammengeführt (ich hoffe es).
StErMi

2
Es ist nicht wirklich eine Gabelung, es basiert auf dem Early Access Program Build. Sobald dieser EAP-Build zur Haupt-IntelliJ-Version wird, verfügt er über dieselben Funktionen wie Android Studio.
powerj1984


2

Danke für den Tipp! Auf einem Mac mit dem Android 4.2.2 SDK hat dies hervorragend funktioniert. Sie müssen nur Ihre Pfade entsprechend aktualisieren. Z.B

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

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


1

Ich bin auf dieses Problem gestoßen, aber mit dem Android-Maven-Plugin und als Variante Ihres Artikels Nr. 2, anstatt die Datei (en) zu kopieren, habe ich einfach einen symbolischen / weichen Link für aapt erstellt

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

Dieser Ansatz schien alle meine Builds wieder zum Laufen zu bringen.


1

Klonen Sie das Android-Maven-Plugin auf GitHub und installieren Sie es in Ihrem Repo

Git-Klon https://github.com/jayway/maven-android-plugin.git
cd ... / maven-android-plugin /
mvn Neuinstallation

Aktualisieren Sie dann Ihren POM, um Version 3.5.4-SNAPSHOT des Plugins zu verwenden. Alles sollte richtig funktionieren!


Beachten Sie jedoch, dass dadurch der Maven-Build behoben wird, nicht jedoch der IntelliJ-Build. Dafür sollte die Problemumgehung für symbolische Links helfen, bis IntelliJ sie behebt.
Andy Dennie

Sie sollten in der Lage sein, die Android-Maven-Plugin-Version irgendwo in der IntelliJ Conf ...
Avianey

Das eingebaute IntelliJ Build System verwendet kein Android-Maven-Plugin. Damit es funktioniert, müssen Sie die symbolischen Links ausführen. Und wenn Sie die symbolischen Links ausführen, sollten Sie nicht auf den neuesten Snapshot des Android-Maven-Plugins aktualisieren müssen. Die Links reparieren sowohl den IntelliJ-Build als auch die nicht neueste Version des Android-Maven-Plugins.
Andy Dennie

Ja, ich habe eine Windows-Umgebung. Starten Sie als Administrator ein DOS-Fenster und verwenden Sie den Befehl mklink. Gehen Sie zu Plattform-Tools und erstellen Sie Links für aapt.exe, aidl.exe, dexdump.exe, dx.bat und lib \ dx.jar zu ihren Gegenstücken in build-tools \ 17.0.0 und build-tools \ 17.0. 0 \ lib. Hinweis: Sie müssen den lib-Unterordner unter Plattform-Tools erstellen.
Andy Dennie

0

Ich habe diese drei Befehle ausgeführt und mein Problem wurde behoben

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"

Wenn Sie die Umgebungsvariable ANDROID_HOME nicht festgelegt haben, ersetzen Sie% ANDROID_HOME% durch den Pfad zu Ihrem Android-SDK, z. B. C: \ Android \ android-sdk


0

Unter Mac OS müssen Sie

$ cd platform-tools
$ ln -s ../build-tools/android-4.2.2/aapt aapt
$ ln -s ../build-tools/android-4.2.2/lib lib

0

Wieder ein gutes Leben. Wenn Sie ein solches fehlerfreies Projekt durchführen, können Sie loslegen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.