edit: (août-2016)
Cette question date de novembre 2013 (alors qu'Android Studio était encore en mode Aperçu du développeur),
Actuellement (AS v2.2, août 2016) pendant l'installation, AS demande de choisir le dossier SDK (ou d'installer par défaut) et s'applique automatiquement à tout projet que vous ouvrez.
Cela signifie que toute solution de contournement ou solution éventuelle n’est pas pertinente car le problème n’est plus reproductible.
question originale:
nous avons ce projet avec plusieurs modules déjà configurés et exécutés correctement sur un autre PC développeur à l'aide d'un wrapper. J'ai cloné les sous-modules Git complets dans ma machine.
Ci-dessous, une impression directe de ma ligne de commande:
$ ./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
$
donc, comme vous pouvez le voir, Android_HOME est là. Que veulent-ils d'autre? Quel est le problème ici.
fonctionnant sous Ubuntu 13.04
modifier:
J'ai déjà créé un fichier local.properties avec sdk.dir=<path>
à la racine du projet et cela fonctionne. Mais cela rend le code plus difficile à porter sur plusieurs serveurs n Build Server, donc la question est toujours ouverte.
Quelqu'un sait pourquoi Android_HOME ne fonctionne pas et que faire pour le faire fonctionner?
J'ai résolu le problème. Cela fonctionne pour moi:
Dans
/ my_current_project /
J'ai créé un fichier appelé local.properties et l'ai mis à l'intérieur
sdk.dir =/my_current_path_to/sdk
Dans la console je dois faire
définir Android_HOME =/my_current_path_to/sdk
J'espère que cela t'aides.
Sous OSX, IntelliJ ne détecte pas les variables d'environnement que vous avez définies dans votre profil .bash_profile ou .bash_rc, etc.
Essayez ceci en substituant la valeur de votre propre emplacement sdk:
launchctl setenv Android_HOME /usr/local/opt/Android-sdk
Ensuite, redémarrez IntelliJ et Bob est votre oncle.
Voici une référence au problème, énoncée plus généralement: https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/
Cela fonctionne pour moi:
$ export Android_HOME=/path_to_sdk/
$ ./gradlew
Le plugin Android Gradle est toujours en version bêta et cela peut simplement être un bug. Pour moi, configurer Android_HOME fonctionne, mais nous sommes peut-être sur des versions différentes (veuillez réessayer avec la version la plus récente et laissez-moi savoir si cela fonctionne ou non).
Il convient également de définir la variable d’environnement Android_SDK et Android_HOME.
J'ai rencontré des problèmes avec certaines machines et nous avons donc créé local.properties dans ces cas. J'ai également remarqué que la dernière version d'Android Studio créera ce fichier pour vous et renseignera la propriété sdk.dir.
Notez que vous ne devez pas vérifier le fichier local.properties dans le contrôle de version, nous l’avons ajouté à notre gitignore afin qu’il n’interfère pas avec le portage du code sur des systèmes que vous avez correctement identifiés comme un problème potentiel.
Pour une raison quelconque, le script Gradle ne prend pas la valeur d'Android_HOME de l'environnement. Essayez de le spécifier explicitement sur la ligne de commande
$ Android_HOME=<sdk location> ./gradlew
J'ai rencontré le même problème, même si le fichier local.properties de mon module principal et la variable d'environnement Android_HOME étaient définis au niveau du système.
Ce problème a été résolu lorsque j'ai copié le fichier local.properties qui se trouvait dans mon module de projet principal à la racine du projet entier (c'est-à-dire le répertoire parent de votre module principal)
Essayez de copier le fichier local.properties dans les modules et le répertoire racine. Devrait marcher.
J'ai rencontré le même problème lors de l'ouverture d'un référentiel git cloné. Le fichier local.properties est automatiquement ajouté au fichier .gitignore, car il est spécifique à l'environnement de construction de chaque ordinateur et ne fait donc pas partie du référentiel.
La solution consiste à importer le projet au lieu de simplement l'ouvrir après l'avoir cloné depuis git. Ceci oblige Android Studio à créer le fichier local.properties spécifique à votre ordinateur:
Fichier >> Importer un projet >>
MAC OS X:
~/.bash_profile
ajouter:
export Android_HOME=~/Library/Android/sdk
export PATH=${PATH}:${Android_HOME}/tools
export PATH=${PATH}:${Android_HOME}/platform-tools
Courir:
source ~/.bash_profile
Redémarrez le terminal et Android Studio
Comment le faire sur MAC OSX:
1) Ouvrez Terminal et Edit: vi ~/.bash_profile
S'il n'y a pas de fichier, ajoutez-le.
2) Ajouter (Changez votre nom d'utilisateur et ajoutez ceci):
#Java var home:
Java_HOME="/usr/libexec/Java_home"
Android_HOME="/Users/<YOUR USER NAME>/Library/Android/sdk"
3) Exécutez source ~/.bash_profile
.
4) Exécuter echo $Java_HOME; echo $Android_HOME;
5) Si votre sortie est:
/usr/libexec/Java_home
/Users/<YOUR USER NAME>/Library/Android/sdk
Donc tu es bon.
Et, Assurez-vous que vous avez Java :)
Java -version
Et gradle :)
gradle --version
Copiez le fichier local.properties dans le dossier racine, puis réexécutez-le.
Cela a fonctionné pour moi (Ubuntu):
Ajoutez Android_HOME=/path/to/Android-sdk
à /etc/environment
.
Redémarrez.
sous Windows, je mets Android_HOME = E:\Android\adt-bundle-windows-x86_64-20131030\sdk Ensuite, cela fonctionne comme prévu.
Sous Linux, vous devez définir sdk.dir.
Le script utilise deux variables différentes.
Si vous utilisez Windows Plantform, essayez d’exécuter Android Studio en tant qu’administrateur.
Sous Linux, essayez d’exécuter studio.sh à partir d’un terminal et définissez Android_HOME dans ce terminal. Cela a fonctionné pour moi.
J'ai le même problème, semble que l'exemple de code ne peut pas trouver l'environnement Android, au lieu d'essayer de résoudre ce problème, je supprime simplement l'exemple de code de settings.gradle, puis l'installation se passe bien.
après cela, il suffit d'importer le projet dans Eclipse et c'est tout :)
Votre fichier local.properties est peut-être manquant. Si c'est le cas, ajoutez un fichier nommé 'local.properties' dans /local.properties et indiquez l'emplacement du sdk comme suit.
sdk.dir = C:\Utilisateurs \\ AppData\Local\Android\Sdk
Supprimez simplement le fichier sdk.dir du fichier local.properties et définissez la variable Android_HOME environment. Cela a fonctionné pour moi.
exporter Android_HOME =/xxx/xxx/dans Shell, puis utilisez-le dans System.env.Android_HOME dans un fichier Gradle.
PS: n'oubliez pas les mots-clés "export" pour rendre Android_HOME global.
Je suis tombé sur un problème similaire. D'une manière ou d'une autre, je n'avais pas de dossier de construction dans mon projet. En copiant ce dossier d'un autre projet dans mon projet avec lequel j'avais un problème, cela a résolu ce problème.
J'ai rencontré le même problème sur Ubuntu (local.properties
et Android_HOME
ont été ajoutés), mais la construction a échoué. La solution consiste donc à Ajouter les lignes suivantes
export Android_HOME=/home/<user>/Android/Sdk
export PATH=$PATH:/home/<user>/Android/Sdk/tools
directement au script studio.sh
(dans /usr/local/Android-studio/bin
)
Ce sera peut-être utile.
Vous avez dit que le contrôle de version local.properties crée des problèmes pour vous. J'ai piraté un script qui utilise l'outil de ligne de commande Android pour actualiser le fichier local.properties sur les ordinateurs impliqués dans la production. Le projet de mise à jour Android command, en plus du local.properties produit beaucoup de déchets indésirables (du moins pour moi), raison de toutes les commandes rm à la fin du script .
#!/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"
Ce script est la première chose que nous exécutons sur toute nouvelle machine où nous codons. Il doit être exécuté dans le répertoire du projet racine. Bien sûr, Android studio peut avoir un moyen graphique de gérer cela, mais je ne le saurais pas car j'utilise un éditeur différent. Je ne peux pas non plus prétendre que la solution est générale, mais cela «fonctionne pour moi» (tm).
solutions:
1 ajoutez "sdk.dir = path_of_sdk"
2 exécutez gradlew avec evn comme suit:
$ Android_HOME = path_of_sdk ./gradlw
Je viens de résoudre exactement le même problème en ajoutant Android_HOME en tant que variable système . Sous Ubuntu, il devrait figurer / etc/profile ou dans un fichier de script shell dans /etc/profile.d/
Ensuite, déconnectez-vous et reconnectez-vous. Gradle doit maintenant reconnaître la variable Android_HOME.
L'installation de Build-Tools 23.0.1 au lieu de 23.0.2 a corrigé ce problème pour moi.
Pour les fenêtres:
j'ai rencontré la même erreur, mais dans mon cas, je clonais un projet. Le projet cloné a été construit avec l'API Android 22 que je n'avais pas installée à l'époque (j'avais les API 24 et 25 installées) ... donc je devais télécharger les outils de sdk pour API 22