Плагин Android Emulator Jenkins не работает
Я пытаюсь использовать Jenkins Android Emulator с Cloudbees, и я часто испытываю такой вывод:
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb disconnect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb disconnect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
[android] Timed-out after waiting 720 seconds for emulator
$ /opt/android/android-sdk-linux/platform-tools/adb disconnect localhost:44194
[android] Stopping Android emulator
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
$ /opt/android/android-sdk-linux/platform-tools/adb kill-server
Finished: NOT_BUILT
Я использую andoird-19 в качестве цели, но я попробовал несколько.
Я также попытался воспроизвести этот случай на моем локальном примере jenkins, и это происходит так же.
Это становится хуже, когда я пытаюсь загрузить из моментального снимка: если я не начинаю с моментального снимка, эмулятор запускается в 50% случаев, если я использую моментальные снимки, тогда он всегда терпит неудачу.
Я использую emulator-arm как исполняемый файл, так как я читал о некоторых ошибках с 64-битной версией. Не уверен, что это относится и к r19, хотя.
Любая идея?
Ответы
Ответ 1
Проблемы с эмуляторами Jenkins для Android, которые у меня были, - это легион. Вот контрольный список, который поможет:
1) Вам нужен флаг -all для списка android и sdk для обновления Android, иначе некоторые пакеты не будут установлены: ex для SDK 24
1а) $ANDROID_HOME/tools/android list sdk --all
1b)
(for i in {1..100}; do echo y; sleep 1; done) |
$ANDROID_HOME/tools/android update sdk --no-ui --all --filter
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,79,80,81,82,82,84,85,101,102,103,112,113,117,118,119,120,121,122,123,124
Если вы получаете страшную ошибку /home/jenkins/android-sdk-linux/platform-tools/adb -s emulator-XXXX shell getprop dev.bootcomplete error: device offline
, скорее всего, вам не хватает пакета на шаге 1b
2) Игнорируйте страшную ошибку Failed to Initialize backend EGL display
, это красная селедка
3) Обязательно используйте опцию Advanced Emulator:
Emulator Options: -no-audio -gpu off
Emulator executable: emulator64-arm
Startup delay: 10 -- this *may* help
4) предварительная сборка script ${ANDROID_HOME}/platform-tools/adb kill-server
не может повредить
Удачи!
Ответ 2
У меня возникла такая же проблема после обновления плагина Android Emulator до версии 2.11.1. Переход на 2.10 с помощью диспетчера плагинов оказался для меня приемлемым решением.
Ответ 3
Испытывая ту же проблему, используя Jenkins Android Emulator Plugin v2.13 с эмуляторами, работающими под управлением Android-19 и выше.
Я нашел открытый билет Jenkins, чтобы исправить проблему