Есть удаленный Дженкинс, на нем собирается apk. Создал новую джобу для деплоя этого апк на эмулятор андроида и прогон тестов. В лог падает вот такое вот:
$ /var/lib/jenkins/.android/android-sdk-linux//platform-tools/adb connect emulator-5598
[android] Waiting for emulator to finish booting...
$ /var/lib/jenkins/.android/android-sdk-linux//platform-tools/adb -s emulator-5598 shell getprop dev.bootcomplete
error: device offline
$ /var/lib/jenkins/.android/android-sdk-linux//platform-tools/adb -s emulator-5598 shell getprop dev.bootcomplete
error: device offline
$ /var/lib/jenkins/.android/android-sdk-linux//platform-tools/adb -s emulator-5598 shell getprop dev.bootcomplete
error: device offline
<....>
$ /var/lib/jenkins/.android/android-sdk-linux//platform-tools/adb -s emulator-5598 logcat -v time
[android] Emulator is ready for use (took 272 seconds)
В принципе, время запуска такое - это норма. Проблема в другом. Если я захожу по ssh под пользователем jenkins на тот самый сервер, где вся эта радость происходит, и пытаюсь в процессе работы джобы, запускающей эмулятор, к этому эмулятору подключиться, то выходит фиг вам: adb не видит запущенного устройства. Мне это поломало gradle-скрипт вот такого вот вида:
task appStart(type: Exec, dependsOn: 'installDebug'){
commandLine('adb','shell', 'am', 'start', '-n', 'org.takino.mtga/.FirstActivity')
}
При этом, сам jenkins через опцию андроид-плагина вполне себе деплоит APK'шку.
С чего это так?
В процессах emulator есть, запущен от jenkins'а, adb fork-server тоже есть, запущен тоже от него.