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.
- El script de compilación de gradle de Android devuelve el error 137 en preDexDebug
- Auto build Actionbarsherlock en Jenkins obtuvo error
- Biblioteca resolver a una ruta sin archivo project.properties
- ¿Cómo puedo solucionar este ZipException mientras compilaba un proyecto de Android en Jenkins?
- La construcción de Jenkins falló debido a la falta de SDK de Android
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?
- Robolectric visible () "W / InputEventReceiver: Se ha intentado consumir eventos de entrada agrupados pero el receptor de eventos de entrada ya se ha eliminado."
- El emulador de Android no se inició después de 360 segundos
- ¿Cómo puedo realizar mis pruebas independientes de Robotium UI en paralelo?
- Cómo utilizar la tarea deviceCheck para ejecutar pruebas en dispositivos remotos
- Jenkins Git Editor: ¿Cómo cometer el código de nuevo a maestro después de la construcción?
- Android ZBar Excepción sólo con Jenkins construir
- Uso de MultipartTypedOutput
- Pruebas de unidad de Android con Jenkins en una máquina sin cabeza
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.
- Utilice nuevo firebase sdk en el proyecto android eclipse
- Javadoc no se muestra cuando se usa un reporte local de Maven