wake-up-neo.com

Gradle, Android und der Android_HOME-SDK-Speicherort

edit: (aug-2016)

Diese Frage stammt vom November 2013 (während sich Android Studio noch im Developer Preview-Modus befand). 

Zur Zeit (AS v2.2, Aug-2016) fordert AS während der Installation die Auswahl des SDK-Ordners (oder die Installation als Standardeinstellung) und er gilt automatisch für das jeweils geöffnete Projekt.

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 auf einem anderen Entwickler-PC mit einem Wrapper 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 können, ist Android_HOME da. Was wollen sie noch? Was ist hier los?.

läuft auf Ubuntu 13.04

edit:

Ich habe bereits eine local.properties-Datei mit sdk.dir=<path> im Projektstamm erstellt und funktioniert. Dies macht es jedoch schwieriger, den Code über Systeme und Build-Server zu portieren, sodass die Frage noch offen ist. 

Weiß jemand, warum Android_HOME nicht funktioniert und was zu tun ist, damit es funktioniert?

145
Budius

Ich habe das Problem gelöst. Das funktioniert für mich:

Im

/ mein_aktuelles_projekt /

Ich habe eine Datei mit dem Namen local.properties erstellt und sie eingefügt

sdk.dir =/my_current_path_to/sdk

In der Konsole muss ich machen

setze Android_HOME =/my_current_path_to/sdk

Hoffe das hilft.

93
u53r

Unter OSX nimmt IntelliJ die Umgebungsvariablen, die Sie in .bash_profile oder .bash_rc usw. festgelegt haben, nicht auf.

Versuchen Sie dies, indem Sie den Wert Ihres eigenen SDK-Standorts 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/

49
Matthew Daumen

In meinem Fall fehlte settings.gradle.

Speichern Sie die Datei und legen Sie sie im obersten Ordner Ihres Projekts ab. Sie können auch aus einem anderen Projekt kopieren.

Screenshot-Referenz:

 enter image description here

Hoffe, das würde deine Zeit sparen.

26
Hiren Patel

Das funktioniert für mich:

$ export Android_HOME=/path_to_sdk/
$ ./gradlew
24
giopromolla

Das Android Gradle-Plugin befindet sich noch in der Beta-Phase und kann einfach ein Fehler sein. Das Einstellen von Android_HOME funktioniert für mich, 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 einzustellen.

Ich habe auf einigen Computern Probleme damit gesehen, also 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 zu unserem Gititore hinzugefügt, damit der Code nicht systemübergreifend portiert wird, was Sie zu Recht als potentielles Problem erkannt haben.

19
ZoFreX

Aus irgendeinem Grund nimmt das Gradle-Skript nicht den Wert von Android_HOME aus der Umgebung an. Versuchen Sie es explizit in der Befehlszeile anzugeben

$ Android_HOME=<sdk location> ./gradlew
15
Andrew Marshall

Ich hatte das gleiche Problem, obwohl ich die Datei local.properties in meinem Hauptmodul und die Umgebungsvariable Android_HOME auf Systemebene hatte. 

Dieses Problem wurde behoben, als ich die Datei local.properties, die sich in meinem Hauptprojektmodul befand, in das Stammverzeichnis des gesamten Projekts kopierte (d. H. Das übergeordnete Verzeichnis Ihres Hauptmoduls).

Versuchen Sie, die Datei local.properties innerhalb von Modulen und im Stammverzeichnis zu kopieren. Sollte arbeiten.

14
joecizac

Das gleiche Problem hatte ich beim Öffnen eines geklonten Git-Repositorys. Die Datei local.properties wird automatisch zur .gitignore-Datei hinzugefügt, da sie für die Erstellungsumgebung jedes Computers spezifisch ist und daher nicht Teil des Repos ist.

Die Lösung besteht darin, das Projekt zu importieren, anstatt es einfach zu öffnen, nachdem Sie es aus git geklont haben. Dadurch wird Android Studio gezwungen, die für Ihren Computer spezifische Datei local.properties zu erstellen:

Datei >> Projekt importieren >> 

13
Bulwinkel

MAC OS X:

  1. Öffnen Sie das Terminal und bearbeiten Sie die Datei:

~/.bash_profile

hinzufügen:

export Android_HOME=~/Library/Android/sdk export PATH=${PATH}:${Android_HOME}/tools export PATH=${PATH}:${Android_HOME}/platform-tools

  1. Lauf:

    source ~/.bash_profile

  2. Starten Sie das Terminal und das Android Studio neu

9

Wie mache ich das auf MAC OSX:

1) Öffnen Sie das Terminal und bearbeiten Sie: vi ~/.bash_profile Wenn sich dort keine Datei befindet, fügen Sie diese einfach hinzu.

2) Add (Ändern Sie IHR BENUTZERNAME und fügen Sie Folgendes hinzu):

#Java var home: Java_HOME="/usr/libexec/Java_home" Android_HOME="/Users/<YOUR USER NAME>/Library/Android/sdk"

3) Führen Sie source ~/.bash_profile aus.

4) Führen Sie echo $Java_HOME; echo $Android_HOME; aus.

5) Wenn Ihre Ausgabe ist:

/usr/libexec/Java_home /Users/<YOUR USER NAME>/Library/Android/sdk

Du bist also gut.

und NEUSTART Android Studio!

Und, Stellen Sie sicher, dass Sie Java haben :)

Java -version

Und gradle :)

gradle --version

8
Nimitack

Kopieren Sie die Datei local.properties in den Stammordner und führen Sie sie erneut aus.

Das hat für mich (Ubuntu) funktioniert:

Fügen Sie Android_HOME=/path/to/Android-sdk zu /etc/environment hinzu.

Starten Sie neu.

4
everyman

in Windows stelle ich Android_HOME = E:\Android\adt-bundle-windows-x86_64-20131030\sdk .__ ein. 

Unter Linux müssen Sie sdk.dir einstellen. 

Das Skript verwendet zwei verschiedene Variablen. 

3
richard

Wenn Sie Windows Plantform verwenden, führen Sie bitte Android Studio als Administrator aus

2
Megoc

Versuchen Sie unter Linux, studio.sh von einem Terminal aus auszuführen, und legen Sie Android_HOME in diesem Terminal fest. Das hat bei mir funktioniert.

2
Naren

Ich habe das gleiche Problem, scheint der Beispielcode die Android-Umgebung nicht finden zu können, stattdessen zu versuchen, zu beheben, dass ich den Beispielcode einfach aus settings.gradle entferne und die Installation dann einwandfrei funktioniert.

danach einfach das Projekt in Eclipse importieren und das ist alles :)

Ihre local.properties-Datei fehlt möglicherweise. Fügen Sie in diesem Fall eine Datei mit dem Namen 'local.properties' in /local.properties hinzu und geben Sie den Speicherort der sdk wie folgt an. 

sdk.dir = C:\Benutzer \\ AppData\Local\Android\Sdk

1
kinath_ru

Löschen Sie einfach die Datei sdk.dir in der Datei local.properties und setzen Sie die Umgebungsvariable Android_HOME . Es hat für mich funktioniert.

1
PraveenMax

exportieren Sie Android_HOME =/xxx/xxx/in der Shell, und verwenden Sie es von System.env.Android_HOME in der Gradle-Datei.

PS: Vergessen Sie nicht die 'Export'-Schlüsselwörter, um Android_HOME global zu machen.

1
Jindowin

Ich bin auf ein ähnliches Problem gestoßen. Irgendwie hatte ich keinen Build-Ordner in meinem Projekt. Durch das Kopieren dieses Ordners aus einem anderen Projekt in mein Projekt, bei dem ein Problem aufgetreten war, wurde dieses Problem behoben.

0
Horatio

Ich habe mit dem gleichen Problem auf Ubuntu zu kämpfen (sowohl local.properties als auch Android_HOME wurden hinzugefügt), aber der Build-Fehler blieb bestehen. Um dies zu umgehen, müssen Sie folgende Zeilen hinzufügen 

export Android_HOME=/home/<user>/Android/Sdk export PATH=$PATH:/home/<user>/Android/Sdk/tools

direkt zum studio.sh-Skript (in /usr/local/Android-studio/bin)

Vielleicht wird es hilfreich sein.

0
Lukas

Sie sagten, dass die Versionierung von local.properties Probleme für Sie verursacht. Ich habe zusammen ein Skript gehackt, das das Android-Befehlszeilentool verwendet, um die Datei local.properties auf allen Computern zu aktualisieren, die an der Produktion beteiligt sind. Der Befehl Android update project erzeugt neben local.properties (zumindest für mich) eine Menge unerwünschten Papierkorbs. Dies ist der Grund für alle rm -Befehle am Ende des Skripts .

#!/bin/bash
scname="$0"
echo "${scname}: updating local properties..."
ln -fs src/main/AndroidManifest.xml
Android update project -t 24 -p "$(pwd)"
echo "${scname}: ...done"
echo "${scname}: removing Android update project junk ..."
rm -v project.properties
rm -v build.xml
rm -v proguard-project.txt
rm -v AndroidManifest.xml
echo "${scname}: ...done"

Dieses Skript ist das erste, was wir auf jedem neuen Computer ausführen, auf dem wir codieren. Es muss im Root-Projektverzeichnis ausgeführt werden. Natürlich hat Android Studio eine GUI-Methode, 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 "Works For Me" (tm). 

0
Mali Remorker

lösungen:

1 add "sdk.dir = path_of_sdk"

2 Führen Sie gradlew mit der Variable evn wie folgt aus:

$ Android_HOME = path_of_sdk ./gradlw

0
RoFF

Ich habe genau das gleiche Problem gelöst, indem ich Android_HOME als systemweite Variable hinzugefügt habe / etc/profile oder in einer Shell-Skriptdatei in /etc/profile.d/

Dann abmelden und erneut anmelden, jetzt sollte Gradle die Android_HOME-Variable erkennen. 

0
Joe3112

Durch die Installation von Build-Tools 23.0.1 anstelle von 23.0.2 wurde dieses Problem für mich behoben.

0
TheBetterJORT

Für Windows:

  1. Fügen Sie den Umgebungsvariablen Android_HOME hinzu: Android_HOME = C:/Benutzer/YOUR_USERNAME/AppData/Local/Android/SDK 
  2. Fügen Sie dem PATH% Android_HOME%\platform-tools hinzu.
0
J. Jerez

ich bin auf den gleichen Fehler gestoßen, aber in meinem Fall habe ich ein Projekt geklont. Das geklonte Projekt wurde mit Android API 22 erstellt, die ich damals nicht installierte (ich hatte API 24 und 25 installiert) Ich musste die SDK-Tools für API 22 herunterladen

0
Didi Pepple