Failed to start an Appium session, err was: Error: Waited 20 secs for selendroid server and it never showed up

I’m using Appium for testing on Android.
I’m trying to get my tests run on Android 4.2.2 and lower (API<=17)
I realized that I need to work on Selendroid mode for that.

I stack on this error for days with no solution:

This is the appium console:

info: Welcome to Appium v1.3.4 (REV c8c79a85fbd6870cd6fc3d66d038a115ebe22efe)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: [debug] Non-default server args: {“udid”:“192.168.56.101:5555”,“sessionOverride”:true}
info: Console LogLevel: debug
info: --> POST /wd/hub/session {“desiredCapabilities”:{“app”:"/Users/amir/AndroidDevelopment/apps/daily.app-debug.apk",“appPackage”:“com.jivesoftware.android.daily.automation”,“newCommandTimeout”:“300”,“platformVersion”:“4.2.2”,“automationName”:“Selendroid”,“appWaitActivity”:“com.jivesoftware.android.daily.app.components.login.LoginActivity,com.jivesoftware.android.daily.app.components.main.MainActivity”,“browserName”:“Selendroid test”,“platformName”:“android”,“deviceName”:“Samsung Galaxy S4 - 4.2.2 - API17 - 1080x1920”,“fullReset”:true}}
info: Client User-Agent string: Apache-HttpClient/4.3.2 (java 1.5)
info: [debug] No appActivity desired capability or server param. Parsing from apk.
info: [debug] Using local app from desired caps: /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk
info: [debug] Creating new appium session fcde7582-f927-40cd-bf9c-b0bb7a67e35c
info: [debug] Starting selendroid server
info: [debug] Getting Java version
info: Java version is: 1.8.0_11
info: [debug] Checking whether selendroid is built yet
info: [debug] Selendroid server exists!
info: [debug] Using fast reset? false
info: [debug] Preparing device for session
info: [debug] Checking whether app is actually present
info: [debug] Checking whether adb is present
info: [debug] Using adb from /Users/amir/AndroidDevelopment/sdk/platform-tools/adb
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices…
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb devices
info: [debug] 1 device(s) connected
info: Found device 192.168.56.101:5555
info: [debug] Setting device id to 192.168.56.101:5555
info: [debug] Waiting for device to be ready and to respond to shell commands (timeout = 5)
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 wait-for-device
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “echo ‘ready’”
info: [debug] Starting logcat capture
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/aapt
info: [debug] Checking if has internet permission from manifest.
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/aapt dump badging /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk
info: [debug] Parsing package and activity from app manifest
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/aapt
info: [debug] Extracting package and launch activity from manifest.
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/aapt dump badging /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk
info: [debug] badging package: com.jivesoftware.android.daily.automation
info: [debug] badging act: com.jivesoftware.android.daily.app.components.main.MainActivity
info: [debug] Parsed package and activity are: com.jivesoftware.android.daily.automation/com.jivesoftware.android.daily.app.components.main.MainActivity
info: [debug] Rebuilt selendroid server does not exist, inserting modified manifest
info: [debug] Inserting selendroid manifest
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/aapt
info: [debug] Compiling manifest /tmp/com.jivesoftware.android.daily.automation/AndroidManifest.xml
info: [debug] Compiling manifest.
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/aapt package -M /tmp/com.jivesoftware.android.daily.automation/AndroidManifest.xml --rename-manifest-package com.jivesoftware.android.daily.automation.selendroid --rename-instrumentation-target-package com.jivesoftware.android.daily.automation -I /Users/amir/AndroidDevelopment/sdk/platforms/android-19/android.jar -F /tmp/com.jivesoftware.android.daily.automation/AndroidManifest.xml.apk -f
info: [debug] Compiled manifest
info: [debug] Inserting manifest, src: /usr/local/share/npm/lib/node_modules/appium/build/selendroid/selendroid.apk, dst: /tmp/selendroid.com.jivesoftware.android.daily.automation.apk
info: [debug] Extracting manifest
info: [debug] Unzipping /tmp/com.jivesoftware.android.daily.automation/AndroidManifest.xml.apk
info: [debug] Testing zip archive: /tmp/com.jivesoftware.android.daily.automation/AndroidManifest.xml.apk
info: [debug] Zip archive tested clean
info: [debug] Unzip successful
info: [debug] Writing tmp apk. /usr/local/share/npm/lib/node_modules/appium/build/selendroid/selendroid.apk to /tmp/selendroid.com.jivesoftware.android.daily.automation.apk
info: [debug] Testing new tmp apk.
info: [debug] Testing zip archive: /tmp/selendroid.com.jivesoftware.android.daily.automation.apk
info: [debug] Zip archive tested clean
info: [debug] Moving manifest.
info: [debug] executing cmd: zip -j -m /tmp/selendroid.com.jivesoftware.android.daily.automation.apk /tmp/com.jivesoftware.android.daily.automation/AndroidManifest.xml
info: [debug] Inserted manifest.
info: [debug] Checking signed status of /tmp/selendroid.com.jivesoftware.android.daily.automation.apk
info: [debug] Checking app cert for /tmp/selendroid.com.jivesoftware.android.daily.automation.apk.
info: [debug] executing cmd: java -jar /usr/local/share/npm/lib/node_modules/appium/node_modules/appium-adb/jars/verify.jar /tmp/selendroid.com.jivesoftware.android.daily.automation.apk
info: [debug] Checking signed status of /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk
info: [debug] Checking app cert for /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk.
info: [debug] executing cmd: java -jar /usr/local/share/npm/lib/node_modules/appium/node_modules/appium-adb/jars/verify.jar /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk
info: [debug] App not signed with debug cert.
info: [debug] Resigning apk.
info: [debug] executing cmd: java -jar /usr/local/share/npm/lib/node_modules/appium/node_modules/appium-adb/jars/sign.jar /tmp/selendroid.com.jivesoftware.android.daily.automation.apk --override
info: [debug] App already signed.
info: [debug] Zip-aligning /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk
info: [debug] Checking whether zipalign is present
info: [debug] Using zipalign from /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/zipalign
info: [debug] Zip-aligning apk.
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/zipalign -f 4 /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk /var/folders/dc/qt1cytxn2z95d4b0y24l_5c40000gn/T/appium114114-47296-123qpyd.tmp
info: [debug] Zip-aligning /tmp/selendroid.com.jivesoftware.android.daily.automation.apk
info: [debug] Checking whether zipalign is present
info: [debug] Using zipalign from /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/zipalign
info: [debug] Zip-aligning apk.
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/zipalign -f 4 /tmp/selendroid.com.jivesoftware.android.daily.automation.apk /var/folders/dc/qt1cytxn2z95d4b0y24l_5c40000gn/T/appium114114-47296-x488di.tmp
info: [debug] Rebuilt selendroid apk does not exist, uninstalling any instances of it on device to make way for new one
info: [debug] Uninstalling com.jivesoftware.android.daily.automation.selendroid
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “am force-stop com.jivesoftware.android.daily.automation.selendroid”
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 uninstall com.jivesoftware.android.daily.automation.selendroid
info: [debug] App was uninstalled
info: [debug] Getting install status for com.jivesoftware.android.daily.automation.selendroid
info: [debug] Getting device API level
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 17
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “pm list packages -3 com.jivesoftware.android.daily.automation.selendroid”
info: [debug] App is not installed
info: [debug] Rebuilt selendroid is not installed, installing it
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 install -r “/tmp/selendroid.com.jivesoftware.android.daily.automation.apk”
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “getprop persist.sys.language”
info: [debug] Current device persist.sys.language:
info: [debug] java -jar “/usr/local/share/npm/lib/node_modules/appium/node_modules/appium-adb/jars/appium_apk_tools.jar” “stringsFromApk” “/Users/amir/AndroidDevelopment/apps/daily.app-debug.apk” “/tmp/com.jivesoftware.android.daily.automation”
info: [debug] Uninstalling com.jivesoftware.android.daily.automation
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “am force-stop com.jivesoftware.android.daily.automation”
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 uninstall com.jivesoftware.android.daily.automation
info: [debug] App was not uninstalled, maybe it wasn’t on device?
info: [debug] Checking app cert for /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk.
info: [debug] executing cmd: java -jar /usr/local/share/npm/lib/node_modules/appium/node_modules/appium-adb/jars/verify.jar /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk
info: [debug] App already signed.
info: [debug] Zip-aligning /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk
info: [debug] Checking whether zipalign is present
info: [debug] Using zipalign from /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/zipalign
info: [debug] Zip-aligning apk.
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/build-tools/21.1.1/zipalign -f 4 /Users/amir/AndroidDevelopment/apps/daily.app-debug.apk /var/folders/dc/qt1cytxn2z95d4b0y24l_5c40000gn/T/appium114114-47296-rgg20t.tmp
info: [debug] MD5 for app is 92ad575c04215d98723e36af2638ba7a
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “ls /data/local/tmp/92ad575c04215d98723e36af2638ba7a.apk”
info: [debug] Getting install status for com.jivesoftware.android.daily.automation
info: [debug] Getting device API level
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 17
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “pm list packages -3 com.jivesoftware.android.daily.automation”
info: [debug] App is not installed
info: Installing App
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “mkdir -p /data/local/tmp/”
info: [debug] Removing any old apks
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “ls /data/local/tmp/*.apk”
info: [debug] Found an apk we want to keep at /data/local/tmp/92ad575c04215d98723e36af2638ba7a.apk
info: [debug] Couldn’t find any apks to remove
info: [debug] Uninstalling com.jivesoftware.android.daily.automation
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “am force-stop com.jivesoftware.android.daily.automation”
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 uninstall com.jivesoftware.android.daily.automation
info: [debug] App was not uninstalled, maybe it wasn’t on device?
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “pm install -r /data/local/tmp/92ad575c04215d98723e36af2638ba7a.apk”
info: [debug] Forwarding system:8080 to device:8080
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 forward tcp:8080 tcp:8080
info: [debug] Pushing settings apk to device…
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 install “/usr/local/share/npm/lib/node_modules/appium/build/settings_apk/settings_apk-debug.apk”
info: [debug] Pushing unlock helper app to device…
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 install “/usr/local/share/npm/lib/node_modules/appium/build/unlock_apk/unlock_apk-debug.apk”
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “dumpsys window”
info: Unlocking screen
info: [debug] Screen is locked, trying to unlock
info: [debug] Getting device API level
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 17
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n io.appium.unlock/.Unlock”
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “dumpsys window”
info: [debug] Screen is unlocked, continuing
info: [debug] executing cmd: /Users/amir/AndroidDevelopment/sdk/platform-tools/adb -s 192.168.56.101:5555 shell “am instrument -e main_activity ‘com.jivesoftware.android.daily.app.components.main.MainActivity’ com.jivesoftware.android.daily.automation.selendroid/io.selendroid.ServerInstrumentation”
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Making http request with opts: {“url”:“http://localhost:8080/wd/hub/status",“method”:"GET”}
info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: Waited 20 secs for selendroid server and it never showed up
info: [debug] Error: Waited 20 secs for selendroid server and it never showed up
at /usr/local/share/npm/lib/node_modules/appium/lib/devices/android/selendroid.js:338:14
at Request._callback (/usr/local/share/npm/lib/node_modules/appium/lib/devices/common.js:121:5)
at self.callback (/usr/local/share/npm/lib/node_modules/appium/node_modules/request/request.js:121:22)
at Request.emit (events.js:95:17)
at ClientRequest.self.clientErrorHandler (/usr/local/share/npm/lib/node_modules/appium/node_modules/request/request.js:230:10)
at ClientRequest.emit (events.js:95:17)
at Socket.socketOnEnd [as onend] (http.js:1572:9)
at Socket.g (events.js:180:16)
at Socket.emit (events.js:117:20)
at _stream_readable.js:943:16
info: [debug] Responding to client with error: {“status”:33,“value”:{“message”:“A new session could not be created. (Original error: Waited 20 secs for selendroid server and it never showed up)”,“origValue”:“Waited 20 secs for selendroid server and it never showed up”},“sessionId”:null}
info: <-- POST /wd/hub/session 500 28066.632 ms - 240

I would appreciate any help.

1 Like

Anyone knows how to fix This??