Failed to start Appium session/ Failed to Install unlock_apk-debug.apk

I’m running the Appium Server 1.4.16.1 (Ophiuchus)
Here are my desired Capabilities;

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“BROWSER_NAME”, “Android”);
capabilities.setCapability(“VERSION”, “7.0”);
capabilities.setCapability(“deviceName”,“Android”);
capabilities.setCapability(“platformName”,“Android”);
capabilities.setCapability(“udid”, “9887a83531485a4343”); <— this id comes from adb devices
capabilities.setCapability(“appPackage”, “com.android.calculator2”);
capabilities.setCapability(“appActivity”,“com.android.calculator2.Calculator”);

driver = new RemoteWebDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);

adb devices returns:

C:\Users\XXXX\AppData\Local\Android\sdk\platform-tools>adb devices
List of devices attached
9887a83531485a4343 device

info: → POST /wd/hub/session {“desiredCapabilities”:{“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”,“BROWSER_NAME”:“Android”,“VERSION”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Android”},“requiredCapabilities”:{},“capabilities”:{“desiredCapabilities”:{“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”,“BROWSER_NAME”:“Android”,“VERSION”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Android”},“requiredCapabilities”:{}},“alwaysMatch”:{“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”,“BROWSER_NAME”:“Android”,“VERSION”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Android”},“firstMatch”:}
info: Client User-Agent string: Apache-HttpClient/4.5.2 (Java/1.8.0_91)
info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : BROWSER_NAME, VERSION
info: [debug] Didn’t get app but did get Android package, will attempt to launch it on the device
info: [debug] Creating new appium session 201dfb34-372f-4fac-8aab-9dbcd3129ef4
info: Starting android appium
info: [debug] Getting Java version
info: Java version is: 1.8.0_91
info: [debug] Checking whether adb is present
info: [debug] Using adb from C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools\adb.exe
warn: No app capability, can’t parse package/activity
info: [debug] Using fast reset? true
info: [debug] Preparing device for session
info: [debug] Not checking whether app is present since we are assuming it’s already on the device
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices…
info: [debug] executing cmd: C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools\adb.exe devices
info: [debug] 1 device(s) connected
info: Found device 9887a83531485a4343
info: [debug] Setting device id to 9887a83531485a4343
info: [debug] Waiting for device to be ready and to respond to shell commands (timeout = 5)
info: [debug] executing cmd: C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 wait-for-device
info: [debug] executing cmd: C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 shell “echo ‘ready’”
info: [debug] Starting logcat capture
info: [debug] Getting device API level
info: [debug] executing cmd: C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 shell “getprop ro.build.version.sdk”
info: [debug] Device is at API Level 24
info: Device API level is: 24
info: [debug] Extracting strings for language: default
info: [debug] Apk doesn’t exist locally
info: [debug] Could not get strings, but it looks like we had an old strings file anyway, so ignoring
info: [debug] executing cmd: C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 shell “rm -rf /data/local/tmp/strings.json”
info: [debug] Not uninstalling app since server not started with --full-reset
info: [debug] Skipping install since we launched with a package instead of an app path
info: [debug] Forwarding system:4724 to device:4724
info: [debug] executing cmd: C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 forward tcp:4724 tcp:4724
info: [debug] Pushing appium bootstrap to device…
info: [debug] executing cmd: C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 push “C:\Program Files (x86)\Appium\node_modules\appium\build\android_bootstrap\AppiumBootstrap.jar” /data/local/tmp/
info: [debug] Pushing settings apk to device…
info: [debug] executing cmd: C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 install “C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk”
info: [debug] Stopping logcat capture
info: [debug] Logcat terminated with code null, signal SIGTERM
info: [debug] Sent shutdown command, waiting for UiAutomator to stop…
warn: UiAutomator did not shut down fast enough, calling it gone
info: [debug] Cleaning up android objects
info: [debug] Cleaning up appium session
info: [debug] Error: Command failed: C:\Windows\system32\cmd.exe /s /c “C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 install “C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk””
Failed to install C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]

at ChildProcess.exithandler (child_process.js:751:12)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1016:16)
at Process.ChildProcess._handle.onexit (child_process.js:1088:5)

info: [debug] Responding to client with error: {“status”:33,“value”:{“message”:“A new session could not be created. (Original error: Command failed: C:\Windows\system32\cmd.exe /s /c "C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 install "C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk""\nFailed to install C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]\r\n)”,“killed”:false,“code”:1,“signal”:null,“cmd”:“C:\Windows\system32\cmd.exe /s /c "C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 install "C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk""”,“origValue”:“Command failed: C:\Windows\system32\cmd.exe /s /c "C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 install "C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk""\nFailed to install C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]\r\n”},“sessionId”:null}
error: Failed to start an Appium session, err was: Error: Command failed: C:\Windows\system32\cmd.exe /s /c “C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 9887a83531485a4343 install “C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk””
Failed to install C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]

info: ← POST /wd/hub/session 500 9424.535 ms - 1405

Weird. It looks like with this message:

  • Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling

… It looks like ADB is not automatically removing the pre-existing .apk?

I saw something similar here… https://github.com/appium/appium/issues/6858

-T.J. Maher, tjmaher.com

Thank you for the comment and the link. Looks like Appium is not supporting the desk top version of Appium! which is 1.4.16? There is a beta out for the new version. Instead I should use the command line version 1.6? Can you confirm?

I can confirm there is a new version of Appium. When I fire up Appium Desktop, I see that the Appium version is now version 1.6.4. It was released in April according to the release notes.

Can I confirm they are not supporting 1.4.16? Er, no… I only have been tinkering with Appium since April 2017. Not sure where to look up that data.

I do have a lovely walkthrough of Appium Desktop and how to build a basic Appium Framework, if you would like to see: http://www.tjmaher.com/p/programming-projects.html

-T.J. Maher

I upgraded to 1.6.4 windows U/I version and I get a different error. Looks like my capabilities are not right. Any help would be appreciated.

Looks like there is a fix: https://github.com/appium/appium/issues/8009

But not sure this has been pushed to the beta v1.6.4 Is there a 1.6.5?

[Appium] Welcome to Appium v1.6.4
[Appium] Non-default server args:
[Appium] address: 127.0.0.1
[Appium] Appium REST http interface listener started on 127.0.0.1:4723
[HTTP] --> POST /wd/hub/session {“desiredCapabilities”:{“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”,“BROWSER_NAME”:“Android”,“VERSION”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Android”},“requiredCapabilities”:{},“capabilities”:{“desiredCapabilities”:{“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”,“BROWSER_NAME”:“Android”,“VERSION”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Android”},“requiredCapabilities”:{}},“alwaysMatch”:{“appPackage”:“com.android.calculator2”,“appActivity”:“com.android.calculator2.Calculator”,“BROWSER_NAME”:“Android”,“VERSION”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Android”},“firstMatch”:[]}
[MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect. We wanted {“required”:[“desiredCapabilities”],“optional”:[“requiredCapabilities”,“capabilities”,“sessionId”,“id”]} and you sent [“desiredCapabilities”,“requiredCapabilities”,“capabilities”,“alwaysMatch”,“firstMatch”]
[HTTP] <-- POST /wd/hub/session 400 11 ms - 243

my java code threw the following exception:

Exception in thread “main” org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{appPackage=com.android.calculator2, appActivity=com.android.calculator2.Calculator, BROWSER_NAME=Android, VERSION=7.0, platformName=Android, udid=9887a83531485a4343, deviceName=Android}], required capabilities = Capabilities [{}]
Build info: version: ‘3.3.1’, revision: ‘5234b325d5’, time: ‘2017-03-10 09:10:29 +0000’
System info: host: ‘XXXXXX’, ip: ‘XXXX’, os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: ‘6.1’, java.version: ‘1.8.0_91’
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:158)
at bichromate.mobile.androidTest.(androidTest.java:33)
at bichromate.mobile.androidTest$Test.main(androidTest.java:68)

OK installed Appium server 1.6.5 and started the server… Now it can’t find calculator 2 what would the calculator be on Samsung Galaxy 8?

From the Appium server

[debug] [ADB] Running ‘C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“shell”,“pm”,“list”,“packages”,“com.android.calculator2”]
[AndroidDriver] Error: Could not find package com.android.calculator2 on the device
at Object.wrappedLogger.errorAndThrow (…/…/lib/logging.js:63:13)
at AndroidDriver.checkPackagePresent$ (…/…/lib/driver.js:370:11)
at tryCatch (C:\Users\DRamer\AppData\Roaming\npm\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.
js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Users\DRamer\AppData\Roaming\npm\node_modules\appium\node_modu
les\babel-runtime\regenerator\runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (C:\Users\DRamer\AppData\Roaming\npm\node_mod
ules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (C:\Users\DRamer\AppData\Roaming\npm\node_modules\appium\node_modules\babel-run
time\regenerator\runtime.js:136:37)
at process._tickCallback (internal/process/next_tick.js:109:7)
Error: Could not find package com.android.calculator2 on the device
at Object.wrappedLogger.errorAndThrow (…/…/lib/logging.js:63:13)
at AndroidDriver.checkPackagePresent$ (…/…/lib/driver.js:370:11)
at tryCatch (C:\Users\xxxxx\AppData\Roaming\npm\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.
js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Users\xxxx\AppData\Roaming\npm\node_modules\appium\node_modu
les\babel-runtime\regenerator\runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (C:\Users\xxxxx\AppData\Roaming\npm\node_mod
ules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (C:\Users\xxxx\AppData\Roaming\npm\node_modules\appium\node_modules\babel-run
time\regenerator\runtime.js:136:37)
at process._tickCallback (internal/process/next_tick.js:109:7)

From my Java Code:

Exception in thread “main” org.openqa.selenium.SessionNotCreatedException: An unknown server-side error occurred while processing the command. Original error: Could not find package com.android.calculator2 on the device (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: ‘3.3.1’, revision: ‘5234b325d5’, time: ‘2017-03-10 09:10:29 +0000’
System info: host: ‘XXXXX’, ip: ‘XXXXX’, os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: ‘6.1’, java.version: ‘1.8.0_91’
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:367)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:113)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:158)
at bichromate.mobile.androidTest.(androidTest.java:33)
at bichromate.mobile.androidTest$Test.main(androidTest.java:68)

OK, Installed the package name viewer to find the name of the calculator.

capabilities.setCapability(“appPackage”, “com.sec.android.app.popupcalculator”);
// This package name of your app (you can get it from apk info app)
capabilities.setCapability(“appActivity”,“com.sec.android.app.popupcalculator”); // This is Launcher activity of your app (you can get it from apk info app)
//Create RemoteWebDriver instance and connect to the Appium server
//It will launch the Calculator App in Android Device using the configurations specified in Desired Capabilities

New error on Appium server:

[MJSONWP] Encountered internal error running command: Error: Error executing adbExec. Original error: ‘Command ‘C:\Use
rs\XXXXX\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s 9887a83531485a4343 install C:\Users\XX\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock\bin\unlock_apk-debug.apk’ exited with cod
e 1’; Stderr: ‘Failed to install C:\Users\DRamer\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock\bin
unlock_apk-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package io.appium.unlock signatures do not match the
previously installed version; ignoring!]’; Code: ‘1’
at ADB.execFunc$ (…/…/…/lib/tools/system-calls.js:228:13)
at tryCatch (C:\Users\XXXXX\AppData\Roaming\npm\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.
js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Users\XXXX\AppData\Roaming\npm\node_modules\appium\node_modu
les\babel-runtime\regenerator\runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (C:\Users\XXXX\AppData\Roaming\npm\node_mo
dules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (C:\Users\XXXXX\AppData\Roaming\npm\node_modules\appium\node_modules\babel-run
time\regenerator\runtime.js:136:37)
at process._tickCallback (internal/process/next_tick.js:109:7)
[HTTP] <-- POST /wd/hub/session 500 5150 ms - 779

C:\Users\xxx>Appium --port 4723 --address 127.0.0.1
[Appium] Welcome to Appium v1.6.5
[Appium] Non-default server args:
[Appium] address: 127.0.0.1
[Appium] Appium REST http interface listener started on 127.0.0.1:4723
[HTTP] --> POST /wd/hub/session {“desiredCapabilities”:{“appPackage”:“com.sec.android.app.popupcalculator”,“appActivity”
:".MainActivity",“platformVersion”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Galaxy S8”},
“requiredCapabilities”:{},“capabilities”:{“desiredCapabilities”:{“appPackage”:“com.sec.android.app.popupcalculator”,“app
Activity”:".MainActivity",“platformVersion”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Gal
axy S8”},“requiredCapabilities”:{}},“alwaysMatch”:{“appPackage”:“com.sec.android.app.popupcalculator”,“appActivity”:".Ma
inActivity",“platformVersion”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Galaxy S8”},“firs
tMatch”:[]}
[debug] [MJSONWP] Calling AppiumDriver.createSession() with args: [{“appPackage”:“com.sec.android.app.popupcalculator”,"
appActivity":".MainActivity",“platformVersion”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:"
Galaxy S8"},{},{“desiredCapabilities”:{“appPackage”:“com.sec.android.app.popupcalculator”,“appActivity”:".MainActivity",
“platformVersion”:“7.0”,“platformName”:“Android”,“udid”:“9887a83531485a4343”,“deviceName”:“Galaxy S8”},“requiredCapabili
ties”:{}}]
[debug] [BaseDriver] Event ‘newSessionRequested’ logged at 1496704147286 (19:09:07 GMT-0400 (Eastern Daylight Time))
[Appium] Creating new AndroidDriver (v1.20.0) session
[Appium] Capabilities:
[Appium] appPackage: ‘com.sec.android.app.popupcalculator’
[Appium] appActivity: ‘.MainActivity’
[Appium] platformVersion: ‘7.0’
[Appium] platformName: ‘Android’
[Appium] udid: ‘9887a83531485a4343’
[Appium] deviceName: ‘Galaxy S8’
[debug] [AndroidDriver] AndroidDriver version: 1.20.0
[BaseDriver] Session created with session id: 82a342c7-7515-485c-ba4f-c3a09feea372
[debug] [AndroidDriver] Getting Java version
[AndroidDriver] Java version is: 1.8.0_91
[ADB] Checking whether adb is present
[ADB] Using adb.exe from C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe
[AndroidDriver] Retrieving device list
[debug] [ADB] Trying to find a connected android device
[debug] [ADB] Getting connected devices…
[debug] [ADB] 1 device(s) connected
[AndroidDriver] Using device: 9887a83531485a4343
[ADB] Checking whether adb is present
[ADB] Using adb.exe from C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe
[debug] [ADB] Setting device id to 9887a83531485a4343
[AndroidDriver] App file was not listed, instead we’re going to run com.sec.android.app.popupcalculator directly on the
device
[debug] [AndroidDriver] Checking whether package is present on the device
[debug] [ADB] Getting connected devices…
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running ‘C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“shell”,“pm”,“list”,“packages”,“com.sec.android.app.popupcalculator”]
[AndroidDriver] Starting Android session
[debug] [ADB] Running ‘C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“wait-for-device”]
[debug] [ADB] Getting connected devices…
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running ‘C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“shell”,“echo”,“ping”]
[debug] [Logcat] Starting logcat capture
[debug] [AndroidDriver] Pushing settings apk to device…
[debug] [ADB] Getting install status for io.appium.settings
[debug] [ADB] Getting connected devices…
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running ‘C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“shell”,“pm”,“list”,“packages”,“io.appium.settings”]
[debug] [ADB] App is installed
[debug] [ADB] Getting package info for io.appium.settings
[debug] [ADB] Getting connected devices…
[ADB] Checking whether aapt is present
[ADB] Using aapt.exe from C:\Users\xxxxx\AppData\Local\Android\Sdk\build-tools\25.0.1\aapt.exe
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running ‘C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“shell”,“dumpsys”,“package”,“io.appium.settings”]
[ADB] Cannot read version codes of C:\Users\xxx\AppData\Roaming\npm\node_modules\appium\node_modules\io.appium.settin
gs\app\build\outputs\apk\settings_apk-debug.apk and/or io.appium.settings. Assuming correct app version is already insta
lled
[debug] [ADB] Getting connected devices…
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running ‘C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“shell”,“getprop”,“ro.build.version.sdk”]
[debug] [ADB] Device API level: 24
[debug] [ADB] Getting connected devices…
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running ‘C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“shell”,“dumpsys”,“package”,“io.appium.settings”]
[debug] [AndroidDriver] Pushing unlock helper app to device…
[debug] [ADB] Running ‘C:\Users\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“install”,“C:\Users\xxxxx\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock
\bin\unlock_apk-debug.apk”]
[debug] [ADB] Running ‘C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“install”,“C:\Users\xxxxx\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock
\bin\unlock_apk-debug.apk”]
[debug] [AndroidDriver] Shutting down Android driver
[debug] [AndroidDriver] Called deleteSession but bootstrap wasn’t active
[debug] [Logcat] Stopping logcat capture
[debug] [ADB] Getting connected devices…
[debug] [ADB] 1 device(s) connected
[debug] [ADB] Running ‘C:\Users\xxxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe’ with args: ["-P",5037,"-s",“988
7a83531485a4343”,“shell”,“am”,“force-stop”,“io.appium.unlock”]
[debug] [AndroidDriver] Not cleaning generated files. Add clearSystemFiles capability if wanted.
[MJSONWP] Encountered internal error running command: Error: Error executing adbExec. Original error: ‘Command ‘C:\Use
rs\xxxx\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s 9887a83531485a4343 install C:\Users\xxxx\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock\bin\unlock_apk-debug.apk’ exited with cod
e 1’; Stderr: ‘Failed to install C:\Users\xxxx\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock\bin
unlock_apk-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package io.appium.unlock signatures do not match the
previously installed version; ignoring!]’; Code: ‘1’
at ADB.execFunc$ (…/…/…/lib/tools/system-calls.js:228:13)
at tryCatch (C:\Users\xxxx\AppData\Roaming\npm\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.
js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Users\xxxx\AppData\Roaming\npm\node_modules\appium\node_modu
les\babel-runtime\regenerator\runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (C:\Users\xxxx\AppData\Roaming\npm\node_mo
dules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (C:\Users\xxxx\AppData\Roaming\npm\node_modules\appium\node_modules\babel-run
time\regenerator\runtime.js:136:37)
at process._tickCallback (internal/process/next_tick.js:109:7)
[HTTP] <-- POST /wd/hub/session 500 5946 ms - 779

Could you kindly remove what ever was installed by the previous version of the appium or keep the device in clean state again.

i.e uninstall unlock_apk-debug.apk and other apks installed by appium during your run.

Then give a run with new Appium server recently installed.

Thank you for the note. I removed Appium windows U/I 1.4.16, then installed the windows Beta, and then removed that in favor of the command line version 1.6.5. I’m stuck on installing unlock_apk-debug.apk. Are you saying that the problem might be that Appium 1.6.5 server is using the wrong version of unlock_apk-debug.apk.

I’m not sure what you mean by removing the previous versions of Appium? I think I’ve done that.

How can I keep the device in a clean state? I’m not sure how to do that? Would I do that thru the device connected to my computer and going thru the file structure to remove the files?

Thank you for the support.

Yes indeed.

“Are you saying that the problem might be that Appium 1.6.5 server is using the wrong version of unlock_apk-debug.apk” – Even i’m assuming the same.

“Device in a clean state” -> Factory Reset the device if it’s a test device.

This is the error from Java: Could this be an issue with the path the unlock_apk-debug.apk

Exception in thread “main” org.openqa.selenium.SessionNotCreatedException: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: ‘Command ‘C:\Users\XXX\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s 9887a83531485a4343 install C:\Users\XXXXX\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock\bin\unlock_apk-debug.apk’ exited with code 1’; Stderr: ‘Failed to install C:\Users\XXXXX\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock\bin\unlock_apk-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package io.appium.unlock signatures do not match the previously installed version; ignoring!]’; Code: ‘1’ (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds

Reset the Galaxy S8 and same result. Can’t install. I read that you increase the time out from 500ml to something else? Where do I set that?

[MJSONWP] Encountered internal error running command: Error: Error executing adbExec. Original error: ‘Command ‘C:\Use
rs\XXXXX\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s 9887a83531485a4343 install C:\Users\XXXXX\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock\bin\unlock_apk-debug.apk’ exited with cod
e 1’; Stderr: ‘Failed to install C:\Users\XXXX\AppData\Roaming\npm\node_modules\appium\node_modules\appium-unlock\bin
unlock_apk-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package io.appium.unlock signatures do not match the
previously installed version; ignoring!]’; Code: ‘1’
at ADB.execFunc$ (…/…/…/lib/tools/system-calls.js:228:13)
at tryCatch (C:\Users\XXXXX\AppData\Roaming\npm\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.
js:67:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Users\XXXX\AppData\Roaming\npm\node_modules\appium\node_modu
les\babel-runtime\regenerator\runtime.js:315:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (C:\Users\XXXX\AppData\Roaming\npm\node_mo
dules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21)
at GeneratorFunctionPrototype.invoke (C:\Users\XXXXX\AppData\Roaming\npm\node_modules\appium\node_modules\babel-run
time\regenerator\runtime.js:136:37)
at process._tickCallback (internal/process/next_tick.js:109:7)
[HTTP] <-- POST /wd/hub/session 500 6171 ms - 779

Could this have anything to do with my Capabilities?

capabilities.setCapability(“platformVersion”, “7.0”);
capabilities.setCapability(“deviceName”,“Galaxy S8”);
capabilities.setCapability(“platformName”,“Android”);
capabilities.setCapability(“udid”, “9887a83531485a4343”);
capabilities.setCapability(“newCommandTimeout”,“1200”);

try correct your code as follow:
capabilities.setCapability(CapabilityType.BROWSER_NAME, “”);
capabilities.setCapability(“appPackage”, “com.android.calculator2”);
capabilities.setCapability(“appActivity”, “.Calculator”);

Thank you all for the help. Resetting the Device fixed the unlock_apk-debug.apk

Now I’m trying to set capabilities correctly: @shanshan when I use your capabilities to find the calculator. The error says app does not exist. Now I’m getting that the appActivity fails

[MJSONWP] Encountered internal error running command: Error: Error occured while starting App. Original error: Activity
used to start app doesn’t exist or cannot be launched! Make sure it exists and is a launchable activity
at Object.wrappedLogger.errorAndThrow (…/…/lib/logging.js:63:13)
at ADB.callee$0$0$ (…/…/…/lib/tools/apk-utils.js:79:9)

MY CAPABILITIES

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“browserName”, “”); //Leave blank if automating an App
capabilities.setCapability(“platformVersion”, “7.0”);
capabilities.setCapability(“deviceName”,“Galaxy S8”);
capabilities.setCapability(“platformName”,“Android”);
capabilities.setCapability(“udid”, “9887a83531485a4343”);
capabilities.setCapability(“newCommandTimeout”,“1200”);
capabilities.setCapability(“appPackage”, “com.sec.android.app.popupcalculator”);
capabilities.setCapability(“appActivity”,".popupcalculator");

This is working and the calculator is showing up!!! Now I can’t find the keys to press: by.name does not work

WebDriver driver = null;

public androidTest(){
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability("browserName", "");   //Leave blank if automating an App
	capabilities.setCapability("platformVersion", "7.0"); 
	capabilities.setCapability("deviceName","Galaxy S8");
	capabilities.setCapability("platformName","Android");
	capabilities.setCapability("udid", "9887a83531485a4343");
	capabilities.setCapability("newCommandTimeout","1200");
	capabilities.setCapability("appPackage", "com.sec.android.app.popupcalculator");
	capabilities.setCapability("appActivity","com.sec.android.app.popupcalculator.Calculator"); 

   try {
	driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
   } catch (MalformedURLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
   }

WebElement two=driver.findElement(By.name(“2”));
two.click();

Java throws the following errors:

Exception in thread “main” org.openqa.selenium.InvalidSelectorException: Locator Strategy ‘name’ is not supported for this session (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 26 milliseconds

I’m using: import org.openqa.selenium.By;

yes,you can find the correct appActivity and package from android manifest.xml file,or use ‘uiautomatorviewer’ /monitor.bat tool which under Android_SDK_windows\tools.

you can try replace your codes as following:

import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”),capabilities);
driver.findElementByName(“2”).click()

@GringoGolf : Kindly look into the Driver code of i.e. RemoteWebDriver, AndroidDriver, IOSDriver etc and what they support in appium github.

I would suggest if you’re using the code locally - use specific driver for devices ie For Android, use AndroidDriver etc.

@shanshan – Suggestion is perfect. Changing to AndroidDriver would resolve that issue

Another solution would be –

getRemoteWebDriver().getWrapperDriver – > Typecast to your desired driver and use it relevantly.

Thank you all for the help. Here is what I changed, and Still can’t find by name.

This is the Appium error:

[debug] [MJSONWP] Calling AppiumDriver.findElement() with args: [“name”,“2”,“dff93057-1cdf-4248-85bb-9b509ab75adb”]
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiauto
mator
[HTTP] <-- POST /wd/hub/session/dff93057-1cdf-4248-85bb-9b509ab75adb/element 500 8 ms - 144

MY CODE LOOKS LIKE THIS
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;

public class androidTest {

AndroidDriver <MobileElement> driver = null;

public androidTest(){
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability("browserName", "");   //Leave blank if automating an App
	capabilities.setCapability("platformVersion", "7.0"); 
	capabilities.setCapability("deviceName","Galaxy S8");
	capabilities.setCapability("platformName","Android");
	capabilities.setCapability("udid", "9887a83531485a4343");
	capabilities.setCapability("newCommandTimeout","1200");
	capabilities.setCapability("appPackage", "com.sec.android.app.popupcalculator");
	capabilities.setCapability("appActivity","com.sec.android.app.popupcalculator.Calculator"); 

   try {
	driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
   } catch (MalformedURLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
   }
}//androidTest

public void runSample(){
	if(null != driver){
		try{
			driver.findElementByName("2").click();
			
			driver.findElementByName("+").click();
			
			driver.findElementByName("4").click();
			
			driver.findElementByName("=").click();
			
			driver.findElementByName("EditText").click();
			
			MobileElement results=driver.findElementByName("EditText");
			
			//Check the calculated value on the edit box
			assert results.getText().equals("6"):"Actual value is : "+results.getText()+" did not match with expected value: 6";
		}catch(Exception e){
			e.printStackTrace();
		}
			
	   
	   driver.quit();
	}
}