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.