Gradle, Android y la ubicación del SDK de ANDROID HOME


Editar: (agosto-2016)

Esa pregunta es de noviembre de 2013 (mientras que Android Studio todavía estaba en modo de vista previa del desarrollador),

Actualmente (COMO v2.2, Ago-2016) durante la instalación COMO pide elegir la carpeta SDK (o instalar en su defecto) y se aplica automáticamente a cualquier proyecto que esté abriendo.

Eso significa que cualquier posible solución o solución es irrelevante ya que el problema ya no es reproducible.

Pregunta original:

Nosotros tenga este proyecto con varios módulos que ya está configurado y se ejecuta correctamente en otro PC desarrollador utilizando un wrapper. Cloné los submódulos git completos en mi máquina.

Debajo hay una impresión directa de mi línea de comandos:

$ ./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
$ 

Así que, como puedes ver el ANDROID_HOME está allí. ¿Qué más quieren? ¿Qué pasa aquí?

Corriendo en Ubuntu 13.04

Editar:

Ya he creado un local.archivo de propiedades con sdk.dir=<path> en la raíz del proyecto y funciona. Pero eso hace que el código sea más difícil de portar a través de systems n build server, por lo que la pregunta sigue abierta.

¿Alguien sabe por qué el ANDROID_HOME no funciona y qué hacer para que funcione?

Author: Budius, 2013-11-05

28 answers

He resuelto el problema. Esto funciona para mí:

En

/ my_current_project /

He creado un archivo llamado local.propiedades y poner dentro

Sdk.dir = / my_current_path_to / sdk

En la consola tengo que hacer

Set ANDROID_HOME= / my_current_path_to / sdk

Espero que esto ayude.

 91
Author: u53r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-24 07:19:49

En OSX , IntelliJ no recogerá las variables de entorno que establezca en su .bash_profile o .bash_rc etc...

Pruebe esto, sustituyendo el valor de su propia ubicación sdk:

launchctl setenv ANDROID_HOME /usr/local/opt/android-sdk

Luego reinicia IntelliJ y Bob es tu tío.

Aquí hay una referencia al problema, expresado de manera más general: https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij /

 48
Author: Matthew Daumen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-25 03:41:52

En mi caso settings.gradle faltaba.

Guarde el archivo y colóquelo en la carpeta de nivel superior de su proyecto, incluso puede copiar desde otro proyecto también.

Referencia de la captura de pantalla:

introduzca la descripción de la imagen aquí

Espero que esto le ahorre tiempo.

 26
Author: Hiren Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-29 04:48:30

Esto funciona para mí:

$ export ANDROID_HOME=/path_to_sdk/
$ ./gradlew
 22
Author: giopromolla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-14 17:19:42

El complemento de Android Gradle todavía está en beta y esto puede ser simplemente un error. Para mí, la configuración de ANDROID_HOME funciona, pero podemos estar en diferentes versiones (por favor, inténtelo de nuevo con la versión más reciente y hágame saber si funciona o no).

También vale la pena establecer la variable de entorno ANDROID_SDK, así como ANDROID_HOME.

He visto problemas con esto en algunas máquinas, así que creamos local.propiedades en esos casos - También he notado que la última versión de Android Studio creará este archivo por usted y completará el sdk.propiedad dir.

Tenga en cuenta que no debe comprobar local.propiedades en el control de versiones, lo hemos agregado a nuestro gitignore para que no interfiera con la portabilidad del código a través de sistemas que usted identificó legítimamente como un problema potencial.

 19
Author: ZoFreX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-23 12:57:35

Por cualquier razón, el script de gradle no está recogiendo el valor de ANDROID_HOME del entorno. Intente especificarlo explícitamente en la línea de comandos

$ ANDROID_HOME=<sdk location> ./gradlew
 15
Author: Andrew Marshall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-08 17:20:14

Me enfrenté al mismo problema, aunque tenía local.archivo de propiedades en mi módulo principal y variable de entorno ANDROID_HOME establecida a nivel del sistema.

Lo que solucionó este problema fue cuando copié el local.archivo de propiedades que estaba en mi módulo principal del proyecto a la raíz de todo el proyecto (es decir, el directorio padre de su módulo principal)

Intente copiar el local.archivo de propiedades dentro de los módulos y el directorio raíz. Debería funcionar.

 14
Author: joecizac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-22 07:15:47

Me encontré con el mismo problema al abrir un repositorio git clonado. Local.el archivo de propiedades se agrega automáticamente al .archivo gitignore ya que es específico del entorno de compilación de cada máquina y, por lo tanto, no forma parte del repositorio.

La solución es importar el proyecto en lugar de simplemente abrirlo después de haberlo clonado desde git, esto obliga a android studio a crear el local.archivo de propiedades específico de su máquina:

Archivo >> Importar Proyecto >>

 13
Author: Bulwinkel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-04 04:06:23

Cómo hacerlo en MAC OSX:

1) Abre Terminal y edita: vi ~/.bash_profile Si no hay ningún archivo allí, simplemente agrégalo.

2) Añadir (Cambiar a SU NOMBRE DE USUARIO y añadir esto):

#Java var home: JAVA_HOME="/usr/libexec/java_home" ANDROID_HOME="/Users/<YOUR USER NAME>/Library/Android/sdk"

3) Ejecutar source ~/.bash_profile.

4) Ejecutar echo $JAVA_HOME; echo $ANDROID_HOME;

5) Si su salida es:

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

Así que eres bueno.

Y REINICIAR android studio!

Y, Asegúrese de que tiene java:)

java -version

Y gradle:)

gradle --version

 9
Author: Adam Delarosa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-03 20:26:20

MAC OSX:

  1. Abre Terminal y edita el archivo:

~/.bash_profile

Para añadir:

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

  1. Ejecutar:

    source ~/.bash_profile

  2. Reinicie el Terminal y Android Studio

 9
Author: Javier Armendariz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-20 07:57:24

Copie el local.propiedades a la carpeta raíz y ejecutar de nuevo.

 6
Author: Santiago Medina Chaverra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-12 15:54:55

Esto funcionó para mí (Ubuntu):

Añadir ANDROID_HOME=/path/to/android-sdk a /etc/environment.

Reiniciar.

 4
Author: everyman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-15 18:31:34

En windows, establezco ANDROID_HOME = E: \ android \ adt-bundle-windows-x86_64-20131030 \ sdk Entonces funciona como se espera.

Cuando esté en Linux, debe configurar sdk.dir.

El script utiliza dos variables diferentes.

 3
Author: richard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-25 07:14:49

Tengo el mismo problema, parece que el código de muestra no puede encontrar el entorno de Android, en lugar de tratar de arreglar que acabo de eliminar el código de muestra de la configuración.gradle y luego la instalación va bien.

Después de eso solo importa el proyecto en eclipse y eso es todo:)

 2
Author: Guillermo Gutiérrez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-03 04:32:19

En Linux, intente ejecutar studio.sh desde un terminal y establecer el ANDROID_HOME en este terminal. Esto funcionó para mí.

 2
Author: Naren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-14 20:34:49

Simplemente elimine el sdk .dir dentro del local.preoperties y establece la variable de entorno ANDROID_HOME . Funcionó para mí.

 1
Author: PraveenMax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-04 18:59:29

Export ANDROID_HOME=/xxx/xxx/ in shell, luego utilícelo por Sistema.env.ANDROID_HOME en el archivo gradle.

PD: no olvides las palabras clave 'exportar' para hacer que el ANDROID_HOME sea global.

 1
Author: Jindowin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-01 07:15:08

Su local.puede que falte el archivo de propiedades. Si es así, agregue un archivo llamado ' local.propiedades ' dentro / local.propiedades y proporcionar la ubicación del sdk de la siguiente manera.

Sdk.dir = C: \ Users \ \ AppData \ Local \ Android \ Sdk

 1
Author: kinath_ru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-07 02:47:02

Si está utilizando windows plantform, intente ejecutar Android Studio como Administrador

 1
Author: Megoc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-25 13:09:26

Acabo de resolver exactamente el mismo problema mediante la adición de la ANDROID_HOME como una variable de todo el sistema. En Ubuntu debería estar en /etc/profile o en un archivo de script de shell en /etc/profile.d /

Luego cierra sesión y vuelve a iniciar sesión, ahora Gradle debería reconocer la variable ANDROID_HOME.

 0
Author: Joe3112,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-06 13:58:55

Me encontré con un problema similar. De alguna manera, no tenía una carpeta de compilación en mi proyecto. Al copiar esta carpeta de otro proyecto a mi proyecto que estaba teniendo un problema con, esto solucionó este problema.

 0
Author: Horatio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-09 04:03:34

Instalando Build-Tools 23.0.1 en lugar de 23.0.2 solucioné este problema.

 0
Author: TheBetterJORT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-12 17:33:50

Soluciones:

1 añadir " sdk.dir = path_of_sdk "

2 ejecuta gradlew con la variable evn como sigue:

ANDRO ANDROID_HOME=path_of_sdk ./ gradlw

 0
Author: RoFF,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-09 02:05:17

Usted dijo que el control de versiones local.propiedades crea problemas para usted. He hackeado juntos un script que utiliza la herramienta de línea de comandos de Android para actualizar el local.archivo de propiedades en las máquinas que participan en la producción. El comando android update project , además del local.properties produce una gran cantidad de basura no deseada (al menos para mí) que es la razón de todos esos comandos rm al final del 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"

Este script es el primero lo que ejecutamos en cualquier máquina nueva donde codificamos. Tiene que ser ejecutado en el directorio raíz del proyecto. Por supuesto, Android Studio puede tener una forma GUI de lidiar con esto, pero no lo sabría, ya que uso un editor diferente. Tampoco puedo afirmar que la solución sea general, pero "Funciona Para Mí" (tm).

 0
Author: Mali Remorker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-18 15:35:45

Me he enfrentado con el mismo problema en Ubuntu(se agregaron local.properties y ANDROID_HOME), pero el error de compilación persistió. Así que la solución es añadir las siguientes líneas

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

Directamente al script studio.sh (dentro de /usr/local/android-studio/bin)

Tal vez sea útil.

 0
Author: Lukas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-22 10:34:58

Me encontré con el mismo error, pero en mi caso estaba clonando un proyecto, el proyecto clonado se construyó con Android API 22 que no instalé en ese momento (tenía API 24 y 25 instaladas)........así que tuve que descargar las herramientas del SDK para API 22

 0
Author: Didi Pepple,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-29 22:06:07

Para Windows:

  1. Añadir ANDROID_HOME a las variables de entorno: ANDROID_HOME = C:/Users/YOUR_USERNAME/AppData/Local/Android/sdk
  2. Agregue %ANDROID_HOME%\platform-tools a la RUTA.
 0
Author: J. Jerez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-07 23:17:41

Esa pregunta es de noviembre de 2013 (mientras que Android Studio todavía estaba en modo de vista previa del desarrollador),

Actualmente (COMO v2.2, Ago-2016) durante la instalación COMO pide elegir la carpeta SDK (o instalar en su defecto) y se aplica automáticamente a cualquier proyecto que esté abriendo.

Eso significa que cualquier posible solución o solución es irrelevante ya que el problema ya no es reproducible.

 -3
Author: Budius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-17 08:17:41