Emulador de Jenkins y Android: Emulator no parecía comenzar; renunciando

Me gustaría probar nuestras aplicaciones Android a través de Jenkins. He configurado todo, pero tengo este mensaje de error:

[Android] Emulador no parecía comenzar; renunciando

He encontrado una solución para este problema desde aquí

Este puede tener varias razones. Uno de ellos aparece en el error siguiente. No he encontrado esto yo mismo, pero he leído sobre stackoverflow mientras buscaba una solución a mi problema específico. Parece estar relacionado con la revisión de las herramientas sdk android. En las ventanas había una corrección como se indica en este billete: https://issues.jenkins-ci.org/browse/JENKINS-10815 Sin embargo, parece que hay un problema similar en linux que no se ha fijado todavía (al menos el billete Está todavía abierto): https://issues.jenkins-ci.org/browse/JENKINS-14901

La solución propuesta en ese boleto es crear un acoplamiento con el emulador conocido (original posterior) hacia el emulador-X apropiado empaquetan.

Lo probé y resolví nuestro problema, pero sólo algunas compilaciones, después de eso volví a recibir este mensaje. Es por eso que he eliminado el complemento de Android y eliminado la carpeta sdk, por lo que reinstalar todo. Después de eso había 4 compilaciones de éxito. (Interesante, que no creo enlace emulador como antes) Pero era todo, el problema respaldado. He jugado con la configuración y establecer el retraso de 30 segundos para el emulador de inicio y comprobado el "eliminar emulador después de construir" opción. Pensé que el problema resuelto porque tenía 14! Éxito construir pero el problema respaldado de nuevo 🙁 Y ahora hay un nuevo mensaje de error también:

NAND: no pudo escribir archivo / tmp / android-jenkins / emulator-CaWkYU, el archivo existe [android] Emulador no parecía comenzar; renunciando

¿Qué estás pensando, cuál es el problema? Con el mismo ajuste a veces el éxito, a veces no. ¿Por qué?

Finalmente encontré el problema en el código fuente: AndroidEmulator.java

El tiempo de espera de conexión de adb es 1min y es arreglar:

private static final int ADB_CONNECT_TIMEOUT_MS = 60 * 1000; 

Así que lo incremento a 5 minutos, construir un nuevo complemento e instalado y resolvió mi problema (~ 100 construir sin este problema)

¿Cuántos ejecutores de construcción tiene (por defecto es 2)? Apuesto a que sólo puede tener un emulador en ejecución en su servidor Jenkins a la vez, cuando dos trabajos están tratando de ejecutar, un trabajo se está clobbered. Si este es el caso, es posible que desee considerar el complemento de construcción pesada para bloquear todos los ejecutores cuando se ejecuta un trabajo de Android. O usar esclavos.

Puede comprobar la solicitud de extracción que tiene correcciones para este problema. Antes de fusionar PR con el repo principal y obtener una nueva versión de plugin, simplemente descargue el proyecto del reporte bifurcado del autor y ejecute el comando:

 mvn install 

Desde el directorio raíz del proyecto. Después de que tomar "android-emulator.hpi" archivo ubicado en

 "<project root>/target" 

Y el complemento de actualización / instalación de la interfaz web de Jenkins

 Manage Jenkins -> Manage Plugins -> Advanced 

Luego reinicie Jenkins CI. En la opción de uso de la configuración del proyecto

 "Build Environment" -> "Common Emulator Options" -> "Advanced" -> "Adb timeout" 

Póngalo a 300 seg, por ejemplo.

  • java.lang.IllegalStateException: Necesita usar un tema Theme.AppCompat (o descendente) con esta actividad
  • Plugin de Android Emulator no funciona en Jenkins
  • ¿Cómo puedo realizar mis pruebas independientes de Robotium UI en paralelo?
  • Uso de MultipartTypedOutput
  • Cómo utilizar la tarea deviceCheck para ejecutar pruebas en dispositivos remotos
  • Pasa parámetro de perfil MAVEN de jenkins
  • Cambiar el androide gradle versionCode forma la línea de comandos
  • Android-Jenkins: no pudo encontrar herramientas de compilación revisión 17.0.0 en Jenkins Build Server
  • Cómo configurar la versión de la aplicación de Android por número de construir en Jenkins?
  • "Aapt" IOException error = 2, No hay tal archivo o directorio "¿por qué no puedo construir mi gradle en jenkins?
  • Creación de una aplicación para Android con Jenkins
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.