bearbeiten: (aug-2016)
Diese Frage stammt aus dem November 2013 (während sich Android Studio noch im Entwicklervorschau-Modus befand).
Derzeit (AS v2.2, August 2016) während der Installation fordert AS Sie auf, den SDK-Ordner auszuwählen (oder standardmäßig zu installieren). Dies gilt automatisch für jedes Projekt, das Sie öffnen.
Das bedeutet, dass eine mögliche Problemumgehung oder Korrektur irrelevant ist, da das Problem nicht mehr reproduzierbar ist.
ursprüngliche Frage:
Wir haben dieses Projekt mit mehreren Modulen, die bereits konfiguriert sind und mit einem Wrapper auf einem anderen Entwickler-PC korrekt ausgeführt werden. Ich habe die kompletten Git-Submodule in meine Maschine geklont.
Unten ist ein direkter Ausdruck meiner Befehlszeile:
$ ./gradlew
FAILURE: Build failed with an exception.
* Where:
Build file '/home/budius/project_name/ActionBar-PullToRefresh/library/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':ActionBar-PullToRefresh:library'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 6.378 secs
$ echo $ANDROID_HOME
/home/budius/Applications/android-studio/sdk
$
Wie Sie sehen, ist ANDROID_HOME also da. Was wollen sie noch? Was ist hier los?
läuft unter Ubuntu 13.04
bearbeiten:
Ich habe bereits eine local.properties-Datei mit sdk.dir=<path>
im Projektstamm erstellt und es funktioniert. Dies erschwert jedoch die Portierung des Codes zwischen Systemen und Build-Servern, sodass die Frage noch offen ist.
Weiß jemand, warum ANDROID_HOME nicht funktioniert und was zu tun ist, damit es funktioniert?
settings.gradle
Datei zum Projektordner hinzuzufügen .Antworten:
Ich habe das Problem gelöst. Das funktioniert bei mir:
Im
Ich habe eine Datei namens local.properties erstellt und eingefügt
In der Konsole muss ich tun
Hoffe das hilft.
quelle
Unter OSX übernimmt IntelliJ nicht die Umgebungsvariablen, die Sie in Ihrem .bash_profile oder .bash_rc usw. festgelegt haben.
Versuchen Sie dies, indem Sie den Wert Ihres eigenen SDK-Speicherorts ersetzen:
launchctl setenv ANDROID_HOME /usr/local/opt/android-sdk
Starten Sie dann IntelliJ neu und Bob ist Ihr Onkel.
Hier ist ein allgemeiner Hinweis auf das Problem: https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/
quelle
launchctl setenv ANDROID_HOME ~/Library/Android/sdk
launchctl setenv ANDROID_HOME $ANDROID_HOME
undlaunchctl setenv JAVA_HOME $JAVA_HOME
In meinem Fall
settings.gradle
fehlte.Speichern Sie die Datei und legen Sie sie im obersten Ordner Ihres Projekts ab, auch wenn Sie sie aus einem anderen Projekt kopieren können.
Screenshot-Referenz:
Hoffe das würde deine Zeit sparen.
quelle
Das funktioniert bei mir:
quelle
Das Android Gradle Plugin befindet sich noch in der Beta und dies kann einfach ein Fehler sein. Für mich funktioniert das Setzen von ANDROID_HOME, aber wir haben möglicherweise unterschiedliche Versionen (versuchen Sie es erneut mit der neuesten Version und lassen Sie mich wissen, ob es funktioniert oder nicht).
Es lohnt sich auch, die Umgebungsvariable ANDROID_SDK sowie ANDROID_HOME festzulegen.
Ich habe auf einigen Computern Probleme damit festgestellt, daher erstellen wir in diesen Fällen local.properties. Ich habe auch festgestellt, dass die neueste Version von Android Studio diese Datei für Sie erstellt und die Eigenschaft sdk.dir ausfüllt.
Beachten Sie, dass Sie local.properties nicht in die Versionskontrolle einchecken sollten. Wir haben es unserem Gitignore hinzugefügt, damit die Portierung des Codes über Systeme, die Sie zu Recht als potenzielles Problem identifiziert haben, nicht beeinträchtigt wird.
quelle
sdk.dir=/path/to/android/sdk
hat bei mir funktioniert. Ich führe gradle als Teil eines Projekts aus, das mit IntelliJ 13.0.2Aus irgendeinem Grund nimmt das Gradle-Skript den Wert von ANDROID_HOME nicht aus der Umgebung auf. Versuchen Sie, es explizit in der Befehlszeile anzugeben
quelle
Ich hatte das gleiche Problem, obwohl ich in meinem Hauptmodul die Datei local.properties und die Umgebungsvariable ANDROID_HOME auf Systemebene festgelegt hatte.
Dieses Problem wurde behoben, als ich die Datei local.properties, die sich in meinem Hauptprojektmodul befand, in das Stammverzeichnis des gesamten Projekts kopierte (dh das übergeordnete Verzeichnis Ihres Hauptmoduls).
Versuchen Sie, die Datei local.properties in die Module und in das Stammverzeichnis zu kopieren. Sollte arbeiten.
quelle
Beim Öffnen eines geklonten Git-Repositorys bin ich auf dasselbe Problem gestoßen. Die Datei local.properties wird automatisch zur .gitignore-Datei hinzugefügt, da sie für die Build-Umgebung jedes Computers spezifisch ist und daher nicht Teil des Repos ist.
Die Lösung besteht darin, das Projekt zu importieren, anstatt es nur zu öffnen, nachdem Sie es von git geklont haben. Dies zwingt Android Studio, die für Ihren Computer spezifische Datei local.properties zu erstellen:
Datei >> Projekt importieren >>
quelle
MAC OS X:
~/.bash_profile
hinzufügen:
export ANDROID_HOME=~/Library/Android/sdk export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME}/platform-tools
Lauf:
source ~/.bash_profile
Starten Sie das Terminal und Android Studio neu
quelle
So geht's unter MAC OSX:
1) Öffnen Sie das Terminal und bearbeiten Sie:
vi ~/.bash_profile
Wenn dort keine Datei vorhanden ist, fügen Sie sie einfach hinzu.2) Hinzufügen (Ändern Sie zu IHREM BENUTZERNAMEN und fügen Sie diesen hinzu):
#Java var home: JAVA_HOME="/usr/libexec/java_home" ANDROID_HOME="/Users/<YOUR USER NAME>/Library/Android/sdk"
3) Ausführen
source ~/.bash_profile
.4) Ausführen
echo $JAVA_HOME; echo $ANDROID_HOME;
5) Wenn Ihre Ausgabe ist:
/usr/libexec/java_home /Users/<YOUR USER NAME>/Library/Android/sdk
Du bist also gut.
und Android Studio neu starten!
Und stellen Sie sicher, dass Sie Java haben :)
java -version
Und gradle :)
gradle --version
quelle
export ANDROID_HOME
ANDROID_HOME
undsource ~/.bash_profile
führe dann aus , dies ist permeant (ausführensource
ist gut, wenn Sie sich nicht abmelden und neu starten oder neu starten möchten). In Ihrem Fall istexport ANDROID_HOME
die UmgebungsvariableANDROID_HOME
in mac nach einem Neustart oder einer Anmeldung nicht mehr vorhanden.Kopieren Sie die local.properties in den Stammordner und führen Sie sie erneut aus.
quelle
Das hat bei mir funktioniert (Ubuntu):
Hinzufügen
ANDROID_HOME=/path/to/android-sdk
zu/etc/environment
.Starten Sie neu.
quelle
In Windows setze ich ANDROID_HOME = E: \ android \ adt-bundle-windows-x86_64-20131030 \ sdk. Dann funktioniert es wie erwartet.
Unter Linux müssen Sie sdk.dir festlegen.
Das Skript verwendet zwei verschiedene Variablen.
quelle
sdk.dir=C:\\Users\\username\\AppData\\Local\\Android\\Sdk
Ich habe das gleiche Problem, anscheinend kann der Beispielcode die Android-Umgebung nicht finden, stattdessen versuche ich zu beheben, dass ich nur den Beispielcode aus settings.gradle entferne und dann die Installation gut geht.
danach einfach das projekt in eclipse importieren und das ist alles :)
quelle
Versuchen Sie unter Linux, studio.sh von einem Terminal aus auszuführen und setzen Sie ANDROID_HOME in diesem Terminal. Das hat bei mir funktioniert.
quelle
Wenn Sie Windows Plantform verwenden, führen Sie Android Studio als Administrator aus
quelle
Löschen Sie einfach die Datei sdk.dir in der Datei local.preoperties und legen Sie die Umgebungsvariable ANDROID_HOME fest . Es hat bei mir funktioniert.
quelle
Exportieren Sie ANDROID_HOME = / xxx / xxx / in die Shell und verwenden Sie es dann von System.env.ANDROID_HOME in der Gradle-Datei.
PS: Vergessen Sie nicht die 'Export'-Schlüsselwörter, um ANDROID_HOME global zu machen.
quelle
export
in dieser Antwort ist wichtig zu beachten. Ich hatte dasANDROID_HOME
definiert und fügte es sogar hinzuPATH
, aber wenn Sie es nicht tunexport ANDROID_HOME
, wird Gradle es nicht finden können.Möglicherweise fehlt Ihre Datei local.properties. Fügen Sie in diesem Fall eine Datei mit dem Namen 'local.properties' in /local.properties hinzu und geben Sie den SDK-Speicherort wie folgt an.
sdk.dir = C: \ Benutzer \\ AppData \ Local \ Android \ Sdk
quelle
Ich habe ANDROID_HOME = [PATH_OF_MY_ANDROID_SDK] auf meine Umgebungsvariable gesetzt. Diese Lösung funktioniert bei mir.
quelle
Ich habe gerade genau das gleiche Problem gelöst, indem ich ANDROID_HOME als systemweite Variable hinzugefügt habe. In Ubuntu sollte es sich in / etc / profile oder in einer Shell-Skriptdatei in /etc/profile.d/ befinden.
Dann abmelden und erneut anmelden, jetzt sollte Gradle die Variable ANDROID_HOME erkennen.
quelle
Ich bin auf ein ähnliches Problem gestoßen. Irgendwie hatte ich keinen Build-Ordner in meinem Projekt. Durch Kopieren dieses Ordners von einem anderen Projekt in mein Projekt, mit dem ich ein Problem hatte, wurde dieses Problem behoben.
quelle
Die Installation von Build-Tools 23.0.1 anstelle von 23.0.2 hat dieses Problem für mich behoben.
quelle
Lösungen:
1 füge "sdk.dir = path_of_sdk" hinzu
2 Führen Sie gradlew mit der Variablen evn wie folgt aus:
$ ANDROID_HOME = path_of_sdk ./gradlw
quelle
Sie sagten, dass die Versionierung von local.properties Probleme für Sie verursacht. Ich habe ein Skript gehackt, das das Android-Befehlszeilentool verwendet, um die Datei local.properties auf den an der Produktion beteiligten Computern zu aktualisieren. Der Befehl android update project erzeugt neben local.properties (zumindest für mich) viel unerwünschten Papierkorb, was der Grund für all diese rm- Befehle am Ende des Skripts ist.
Dieses Skript ist das erste, was wir auf einem neuen Computer ausführen, auf dem wir codieren. Es muss im Stammprojektverzeichnis ausgeführt werden. Natürlich kann Android Studio eine GUI-Methode haben, um damit umzugehen, aber ich würde es nicht wissen, da ich einen anderen Editor verwende. Ich kann auch nicht behaupten, dass die Lösung allgemein ist, aber sie funktioniert "für mich" (tm).
quelle
Ich habe mit dem gleichen Problem unter Ubuntu zu kämpfen (beide
local.properties
undANDROID_HOME
wurde hinzugefügt), aber der Build-Fehler blieb bestehen. Umgehung besteht also darin, die folgenden Zeilen hinzuzufügenexport ANDROID_HOME=/home/<user>/Android/Sdk export PATH=$PATH:/home/<user>/Android/Sdk/tools
direkt zum
studio.sh
Skript (innen/usr/local/android-studio/bin
)Vielleicht wird es hilfreich sein.
quelle
Ich habe den gleichen Fehler festgestellt, aber in meinem Fall habe ich ein Projekt geklont. Das geklonte Projekt wurde mit der Android-API 22 erstellt, die ich zu diesem Zeitpunkt nicht installiert hatte (ich hatte API 24 und 25 installiert) Ich musste die SDK-Tools für API 22 herunterladen
quelle
Für Windows:
quelle
Auf meinem System (Ubuntu 20.04 nach zwei Versions-Upgrades von 19.04) waren die Symptome so, als ob
gradle
(4.4.1 von APT-Repos installiert) dieANDROID_HOME
Umgebungsvariable ignoriert hätte , während dersdk.dir
Wert von übernommen wurdelocal.properties
wenn ich eine erstellt habe, übernommen wurde.Der Grund schien der
java
Befehl gewesen zu sein, auf den Bezug genommen wurdeopenjdk version "11.0.7"
. Nachdem ich dasopenjdk-8-jdk
Paket installiert undupdate-alternatives --config java
die Standardversionjava
8 ("1.8.0_252"
) festgelegt hatte,gradle
begann ich wie erwartet zu arbeiten.quelle
Diese Frage stammt aus dem November 2013 (während sich Android Studio noch im Entwicklervorschau-Modus befand).
Derzeit (AS v2.2, August 2016) während der Installation fordert AS Sie auf, den SDK-Ordner auszuwählen (oder standardmäßig zu installieren). Dies gilt automatisch für jedes Projekt, das Sie öffnen.
Das bedeutet, dass eine mögliche Problemumgehung oder Korrektur irrelevant ist, da das Problem nicht mehr reproduzierbar ist.
quelle