Construyendo un proyecto de Android Studio en Jenkins? Android.compileSdkVersion está ausente

Estoy intentando configurar mi primer proyecto de Android para construir sobre Jenkins.

Estoy ejecutando Jenkins 1.6.2 con la versión 1.24 del complemento Gradle. Se ejecuta en Windows 7 Professional SP1.

He instalado Android Studio y el Java7 JDK en mi máquina de compilación, y una versión de check-out del software se desarrolla bien, a través de Android Studio o al ejecutar gradlew.bat desde la línea de comandos. Pero no puedo conseguir que la tarea de construcción de script de Invoke Gradle funcione, dentro de mi trabajo de Jenkins.

Hay un par de botones de radio, en la página de configuración del proyecto:

  • Invocar Gradle
  • Utilizar el envoltorio Gradle

Si selecciono "Invocar Gradle", se me pedirá que seleccione una "Versión Gradle", que es algo que configuro en Configurar el sistema.

He creado una instalación de gradle con GRADLE_HOME establecido en "D: \ Archivos de programa \ Android Studio \ gradle \ gradle-2.2.1". Eso me da una advertencia de que "D: \ Archivos de programa \ Android Studio \ gradle \ gradle-2.2.1 no es un directorio en el maestro Jenkins …."

Y cuando ejecuto una compilación, obtengo un error "No se puede recuperar el ejecutable de Gradle".

Lo que probablemente está relacionado con el plugin gradle quejándose del directorio. Pero el directorio es correcto. Lo he probado con '/' en lugar de '\', y no hizo ninguna diferencia.

Dado que no funcionó, probé la alternativa "Use Gradle Wrapper". Hay una casilla de verificación: "From Root Build Script Dir". Si la compruebo, o no, consigo "java.lang.IllegalArgumentException: android.compileSdkVersion está faltando!"

He establecido JAVA_HOME y ANDROID_HOME, por lo que no es el problema.

¿Algunas ideas?

Como seguimiento, borro la tarea de gradle y agregé una tarea de comando por lotes de ejecución de Windows:

SET ANDROID_HOME=d:\Program Files\Android\sdk SET JAVA_HOME=d:\Program Files\Java\jdk1.7.0_79 .\gradlew.bat clean 

Cuando corro eso, sigo recibiendo ese error.

Pero cuando ejecuto esos comandos desde una línea de comandos en la máquina de compilación, funcionan bien.

¿Qué podría ser diferente, al ejecutar gradlew.bat de Jenkins, que al ejecutarlo desde la línea de comandos? El servicio de Jenkins está configurado para utilizar el mismo usuario que estoy conectado como, cuando estoy corriendo desde la línea de comandos. He intentado establecer explícitamente cada una de las variables de entorno que he establecido en la línea de comandos, en la tarea de Jenkins, y sigo viendo el error.

¿Algunas ideas?

Su archivo local.properties debe contener: sdk.dir = "ruta de acceso a su android sdk"

También estoy usando jenkins para construir mis aplicaciones y tuve un problema similar. Lo arreglé ejecutando el envoltorio gradle a través de jenkins sin usar el plugin jenkins gradle.

 cd $WORKSPACE ./gradlew assembleRelease 

Y si quieres pelusa añadir un segundo ejecutivo shell con

 cd $WORKSPACE ./gradlew lint 

Tenga en cuenta que estos comandos son para un sistema Linux, pero que funcionará muy bien en las ventanas (tenía un servidor de compilación de Windows hace algún tiempo y hizo lo mismo)

Conocí este problema también, pero no sé si mi solución se adapte a usted.

Mi situación está abajo, en mi archivo build.gradle del proyecto:

 apply plugin: 'com.android.library' apply from: 'maven_push.gradle' dependencies { ...... } android { compileSdkVersion 19 buildToolsVersion "21.1.0" ...... } 

Cuando corro: gradle clean build , mensaje de error show:

 * Where: Script 'C:\xxxxxx\Project\maven_push.gradle' line: 32 * What went wrong: A problem occurred evaluating script. > android.compileSdkVersion is missing! 

Mi solución es cambiar la posición de este script apply from: 'maven_push.gradle' a la parte inferior en el archivo build.gradle, y BUILD SUCCESSFUL !:

 apply plugin: 'com.android.library' dependencies { ...... } android { compileSdkVersion 19 buildToolsVersion "21.1.0" ...... } apply from: 'maven_push.gradle' 

Creo que debería prestar atención al mensaje "Where" en la línea de comandos de error.

No puedo estar seguro de que va a resolver su problema, pero tal vez usted puede considerar el uso de sdk-manager-plugin que descarga e instala el sdk android directamente desde gradle.

Si funciona, probablemente no le dirá por qué su configuración actual no está funcionando, pero al menos ya no estará atascado.

  • ¿Cómo hacer Cucumber Android pruebas de integración?
  • Eliminación de complementos cordova del proyecto
  • Cobertura de código de Android en Jenkins CI
  • Robolectric 2.x + Maven en Jenkins falló con las dependencias APKLIB
  • Cómo configurar la versión de la aplicación de Android por número de construir en Jenkins?
  • Error al aplicar el complemento
  • ¿Cómo subir automáticamente la aplicación de Android de Jenkins a Google Play Alpha Test?
  • Construir proyecto android con Jenkins: No se pudo inicializar análisis
  • Ant Build Android Project con dependencias
  • Cómo poner bzr revid en Android de manifiesto: versionName
  • Integración continua con Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.