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
- Trabajo de Jenkins usando Gradle no puede encontrar ejecutable
- Integración Continua con Jenkins para el proyecto React Native (iOS + Android)
- Error de Jenkins Execute: java.io.IOException ant build
- La construcción de un proyecto de prueba Android con Jenkins falla debido a un error subyacente
- Jenkins no puede iniciar el emulador
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é?
- El script de compilación de gradle de Android devuelve el error 137 en preDexDebug
- Cómo poner bzr revid en Android de manifiesto: versionName
- Eliminación de complementos cordova del proyecto
- Android ZBar Excepción sólo con Jenkins construir
- Mi compilación falla cuando uso Ant para construir y el proyecto de Android con múltiples bibliotecas
- Emulador de Android en Jenkins error: dispositivo desconectado
- Construyendo un proyecto de Android Studio en Jenkins? Android.compileSdkVersion está ausente
- Jenkins no puede resolver com.android.tools.build:gradle:3.0.0-alpha8
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.
- Android 6.0 solicita emparejamiento con dispositivos remotos al extraer UUIDS
- Generador de proveedores de contenido para Android Studio