Подтвердить что ты не робот

Gradle команды выходят из строя на API 23 Изображение эмулятора Google API (armeabi-v7a)

Я не могу заставить команды Gradle из командной строки работать с изображением эмулятора API 23 Google API (Google APIs ARM (armeabi-v7a)) - я всегда получаю com.android.ddmlib.ShellCommandUnresponsiveException.

Шаги для воспроизведения:

  • Создайте AVD с API 23 Google APIs ARM (armeabi-v7a)
  • Clone https://github.com/googlemaps/android-maps-utils (или используйте собственный проект)
  • Запустите gradlew installDebug из командной строки

Вы увидите:

: демо: assembleDebug: demo: installDebug FAILED

FAILURE: сбой сборки с исключением.

  • Что пошло не так:

Ошибка выполнения для задачи: demo: installDebug '. com.android.builder.testing.api.DeviceException: com.android.ddmlib.ShellCommandUnresponsiveException

Если вы запустите gradlew connectedCheck, вы увидите аналогичную ошибку:

  • Что пошло не так: Выполнение не выполнено для задачи ': library: connectedDebugAndroidTest'. com.android.builder.testing.api.TestException: com.android.builder.testing.api.DeviceException: com.android.ddmlib.ShellCommandUnresponsiveException

I может без проблем установить и запустить проект и тесты из Android Studio (1.4).

Команды

Gradle, похоже, отлично работают на изображении эмулятора API 21 Google API из командной строки.

Вот пример неудачи в Travis для API 23: Изображение эмулятора Google API:

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

... и пример успешной сборки при использовании образа эмулятора API 21 Google API:

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

Единственное различие между двумя сборками - уровень API-интерфейса API API API от 23 до 21:

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

ИЗМЕНИТЬ

Я открыл здесь проблему AOSP по этой проблеме:

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

4b9b3361

Ответ 1

Короткий ответ

Android Gradle У плагина было слишком малое значение тайм-аута с жестким кодом.

Google исправил его в версия 2.0.0-beta3:

Будет в версии 2.0.0-beta3.

Итак, что мы помещаем в build.gradle для установки этого значения тайм-аута?

В настоящее время он все привязан к android.adbOptions.timeOutInMs.

Пример: проект Google Увеличение времени ожидания ADB и добавление Travis- ci поддержка. Это работает!


Предыдущий ответ

Это та же проблема, о которой сообщалось здесь

Прочтите обходной путь от разработчика unique3 о жестком и низком тайм-аутах здесь

и звезда проблема

Вы правы. Это не проблема Travis-ci, чтобы воспроизвести ее, вам нужно создать эмулятор armeabi-v7a и попытаться установить любое приложение локально из команды Gradle.

Дополнительная информация здесь, update3 моего ответа

Update:

Вы можете избежать задач installVariant и эту проблему, используя 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

Работает:

...
: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:..