Comandos de Gradle fallan en API 23 Imagen del emulador de la API de Google (armeabi-v7a)

Parece que no puedo obtener los comandos de Gradle desde la línea de comandos para trabajar con la API API de Google API ( Google APIs ARM (armeabi-v7a) ) – Siempre obtengo una com.android.ddmlib.ShellCommandUnresponsiveException .

Pasos para reproducir:

  1. Crear un AVD con API 23 API de Google APIs ARM (armeabi-v7a)
  2. Clonar https://github.com/googlemaps/android-maps-utils (o usar su propio proyecto)
  3. Ejecute gradlew installDebug desde la línea de comandos

Verás:

: Demo: assembleDebug: demo: installDebug FALLA

FALLA: La generación falló con una excepción.

  • Qué salió mal:

Error de ejecución de la tarea ': demo: installDebug'. Com.android.builder.testing.api.DeviceException: com.android.ddmlib.ShellCommandUnresponsiveException

Si ejecuta gradlew connectedCheck verá un error similar:

  • Lo que salió mal: La ejecución falló para la tarea ': library: connectedDebugAndroidTest'. Com.android.builder.testing.api.TestException: com.android.builder.testing.api.DeviceException: com.android.ddmlib.ShellCommandUnresponsiveException

Puedo instalar / ejecutar el proyecto y las pruebas de Android Studio (1.4) sin ningún problema.

Los comandos de Gradle parecen funcionar bien en la imagen del emulador de API de Google API 21 desde la línea de comandos.

Aquí hay un ejemplo de error en Travis para API 23 Google API emulator image:

Https://travis-ci.org/barbeau/android-maps-utils/builds/83233500

… y un ejemplo de compilación exitosa al usar la API 21 API del emulador de Google:

Https://travis-ci.org/barbeau/android-maps-utils/builds/83234555

La única diferencia entre las dos versiones es el nivel de la API del emulador de API de Google de 23 vs. 21:

Https://github.com/barbeau/android-maps-utils/commit/a5eecd7e7a4fc899ecd5eaeae6826414fefeae70

EDITAR

He abierto un problema de AOSP aquí en este problema:

Https://code.google.com/p/android/issues/detail?id=190200

Respuesta corta

El complemento de Android Gradle tenía un valor de tiempo de espera con codificación en disco duro demasiado bajo.

Google lo arregló en la versión 2.0.0-beta3 :

Estará en 2.0.0-beta3.

Entonces, ¿qué ponemos en build.gradle para establecer este valor de tiempo de espera?

Actualmente, todo está asociado a android.adbOptions.timeOutInMs.

Ejemplo: Proyecto de Google Aumentar el tiempo de espera del ADB y agregar soporte de Travis-ci . ¡ Funciona !


Respuesta anterior

Es el mismo problema que se ha reportado aquí

Lea la solución del desarrollador de unity3 sobre el tiempo de espera con codificación y bajo tiempo

Y protagonizar la cuestión

Tienes razón. No es un problema de Travis-ci, para reproducirlo, solo necesitas crear un emulador armeabi-v7a e intentar instalar cualquier aplicación localmente desde el comando gradle.

Más información aquí, la actualización3 de mi respuesta

Actualizar:

Puede evitar las tareas installVariant y este problema mediante adb:

 ./gradlew clean ./gradlew assembleDebug ./gradlew assembleDebugAndroidTest adb install app/build/outputs/apk/app-debug.apk adb install app/build/outputs/apk/app-debug-androidTest-unaligned.apk adb shell am instrument -w com.google.samples.apps.topeka.test/android.support.test.runner.AndroidJUnitRunner 

Funciona:

 ... :app:assembleDebugAndroidTest BUILD SUCCESSFUL Total time: 19.787 secs 2413 KB/s (4204090 bytes in 1.701s) pkg: /data/local/tmp/app-debug.apk Success 1984 KB/s (1058902 bytes in 0.521s) pkg: /data/local/tmp/app-debug-androidTest-unaligned.apk Success com.google.samples.apps.topeka.activity.SignInActivityTest:. com.google.samples.apps.topeka.activity.quiz.EntertainmentQuizTest:. com.google.samples.apps.topeka.activity.quiz.GeneralKnowledgeQuizTest:.. 
  • Facebook registerCallBack método no iniciado
  • Cargar archivo html local en webview android
  • Acceso a variables de entorno desde Android Studio gradle build
  • Android Studio no puede encontrar mis recursos
  • Maneras rápidas de importar trazos en Android Studio?
  • ¿Cómo se utiliza un OnClickListener en una vista de reciclador?
  • Cómo adjuntar javadoc al archivo .aar personalizado en android studio?
  • Android Studio: ClassNotFoundException
  • usando AppCompat-21 en los fallos del dispositivo Lollipop
  • ¿Cómo configurar Proguard usando Gradle?
  • Explicar la estrategia de dependencias transitivas descrita en la documentación de Android Build System
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.