Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

UiAutomator quit before it successfully launched

ubuntu
robot-framework
android
appium
Теги: #<Tag:0x00007f7b64dcef38> #<Tag:0x00007f7b64dcedf8> #<Tag:0x00007f7b64dcecb8> #<Tag:0x00007f7b64dceb78>

(Vitalii) #1

Не могу запустить тесты аппиума с андроидом.

На чем:

  • Ubuntu 14.04 32-bit
  • Appium 1.4.16
  • Genymotion (Android 4.3, 5.0) & Real device (Android 5.1.1)
  • Robot framework

При запуске получаю ошибку:

WebDriverException: Message: A new session could not be created. (Original error: UiAutomator quit before it successfully launched)

В логах аппиума:

info: [debug] spawning: /home/vitalii/android-sdk-linux/platform-tools/adb -s 192.168.57.101:5555 shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap -e pkg com.test.app -e disableAndroidWatchers false
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_RESULT: shortMsg=java.lang.IllegalStateException
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_RESULT: longMsg=UiAutomationService android.accessibilityservice.IAccessibilityServiceClient$Stub$Proxy@25af113ealready registered!
info: [debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_CODE: 0
info: [debug] UiAutomator exited

error: UiAutomator quit before it successfully launched
info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: UiAutomator quit before it successfully launched

Исходя из того, что мне удалось нагуглить, проблема в запущенном uiautomator. В логах аппиума я вижу, что там есть убивание уиавтоматора через:

info: Starting App
info: [debug] Attempting to kill all ‘uiautomator’ processes
info: [debug] Getting all processes with ‘uiautomator’
info: [debug] executing cmd: /home/vitalii/android-sdk-linux/platform-tools/adb -s 192.168.57.101:5555 shell “ps ‘uiautomator’”
info: [debug] No matching processes found

Но если выполнить в консоли adb -s 192.168.57.101:5555 shell “ps ‘uiautomator’” - ничего не будет найдено. А если поискать вот так:

adb -s 192.168.57.101:5555 shell “ps | grep ‘uiautomator’”
то найдется
u0_a60 1658 196 1010928 43344 ffffffff f76ebf75 S com.github.uiautomator

Сделав килл этому процессу через adb kill и выполнив, команду которая падает в аппиуме:

info: [debug] spawning: /home/vitalii/android-sdk-linux/platform-tools/adb -s 192.168.57.101:5555 shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap -e pkg com.test.app -e disableAndroidWatchers false

я вижу, что она отрабатывает без ошибок.
Но запустив тест, он опять упадет. Получается при запуске теста снова процесс uiatomator возобновляется и не убивается.

Функция поиска процесса видимо была изменена после этого сообщения

Проблема существует как на дженимоушн, так и на реальном девайсе.