Unable to automate using selendroid automation

android - 4.0.3 real device
java client - 2.0.0
appium - 1.3.1
Windows 7 OS

Below is the code
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, “Selendroid”);
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, “Android”);
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, “4.0.3”);
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, “HTC Desire V”);
capabilities.setCapability(“udid”,“HT34APG02807”);
capabilities.setCapability(MobileCapabilityType.APP_PACKAGE,“eWallet.Android”);
capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY,".ewallet.android.activities.SplashActivity");

Following is the log

C:\Users\Raghuram>appium &
info: Welcome to Appium v1.3.1 (REV 1160ce02bb89c354cb99317985123acf39f0e7d3)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: Console LogLevel: debug
info: --> POST /wd/hub/session {“desiredCapabilities”:{“appPackage”:“eWallet.And
roid”,“appActivity”:".ewallet.android.activities.SplashActivity",“platformVersio
n”:“4.0.3”,“automationName”:“Selendroid”,“platformName”:“Android”,“udid”:“HT34AP
G02807”,“deviceName”:“HTC Desire V”}}
info: Client User-Agent string: Apache-HttpClient/4.3.4 (java 1.5)
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 3b1f17cf-8f4f-490e-8143-f16911a110d1
info: [debug] Starting selendroid server
info: [debug] Checking whether selendroid is built yet
info: [debug] Selendroid server exists!
info: [debug] Preparing device for session
info: [debug] Not checking whether app is present since we are assuming it’s alr
eady on the device
info: [debug] Checking whether adb is present
info: [debug] Using adb from E:\Automation\MobileAutomation\adt\adt-bundle\sdk\p
latform-tools\adb.exe
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices…
info: [debug] executing: “E:\Automation\MobileAutomation\adt\adt-bundle\sdk\plat
form-tools\adb.exe” devices
info: [debug] 2 device(s) connected
info: Found device HT34APG02807
info: [debug] Setting device id to HT34APG02807
info: [debug] Waiting for device to be ready and to respond to shell commands (t
imeout = 5)
info: [debug] executing: “E:\Automation\MobileAutomation\adt\adt-bundle\sdk\plat
form-tools\adb.exe” -s HT34APG02807 wait-for-device
info: [debug] executing: “E:\Automation\MobileAutomation\adt\adt-bundle\sdk\plat
form-tools\adb.exe” -s HT34APG02807 shell “echo ‘ready’”
info: [debug] Starting logcat capture
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from E:\Automation\MobileAutomation\adt\adt-bundle\sdk
build-tools\android-4.4W\aapt.exe
info: [debug] hasInternetPermissionFromManifest: “E:\Automation\MobileAutomation
\adt\adt-bundle\sdk\build-tools\android-4.4W\aapt.exe” dump badging “null”
warn: W/asset ( 9968): Asset path null is neither a directory nor file (type=1
).
ERROR: dump failed because assets could not be loaded

info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: hasInternetPermissionF
romManifest failed. Error: Command failed: W/asset ( 9968): Asset path null is
neither a directory nor file (type=1).
ERROR: dump failed because assets could not be loaded

info: [debug] Error: hasInternetPermissionFromManifest failed. Error: Command fa
iled: W/asset ( 9968): Asset path null is neither a directory nor file (type=1
).
ERROR: dump failed because assets could not be loaded

at C:\Users\Raghuram\AppData\Roaming\npm\node_modules\appium\node_modules\ap

pium-adb\lib\adb.js:1674:19
at ChildProcess.exithandler (child_process.js:652:7)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Process.ChildProcess._handle.onexit (child_process.js:823:5)
info: [debug] Responding to client with error: {“status”:33,“value”:{“message”:"
A new session could not be created. (Original error: hasInternetPermissionFromMa
nifest failed. Error: Command failed: W/asset ( 9968): Asset path null is neit
her a directory nor file (type=1).\r\nERROR: dump failed because assets could no
t be loaded\r\n)",“origValue”:“hasInternetPermissionFromManifest failed. Error:
Command failed: W/asset ( 9968): Asset path null is neither a directory nor fi
le (type=1).\r\nERROR: dump failed because assets could not be loaded\r\n”},“ses
sionId”:null}
info: <-- POST /wd/hub/session 500 143.439 ms - 526

I got the same problem with a test built in node. The path to my app was relative and it must the the full path.

Have you tried adding the absolute path to your .apk ?

capabilities.setCapability("app","C:\.../.apk");

@vrunoa DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, “Selendroid”);
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, “Android”);
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, “4.0.3”);
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, “HTC Desire V”);
capabilities.setCapability(“app”, new File(“C:/Users/raghuadmin1.ZENQATEST2/Downloads/eBay_Recent.apk”));
capabilities.setCapability(“udid”,“HT34APG02807”);
capabilities.setCapability(MobileCapabilityType.APP_PACKAGE,“com.ebay.mobile”);
capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY,“.activities.eBay”);
driver = new AndroidDriver(new URL(“http://0.0.0.0:4723/wd/hub”), capabilities);

Got following error in server

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\raghuadmin1.ZENQATEST2>appium &
info: Welcome to Appium v1.3.1 (REV 1160ce02bb89c354cb99317985123acf39f0e7d3)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: Console LogLevel: debug
info: → POST /wd/hub/session {“desiredCapabilities”:{“app”:“C:\Users\raghuad
min1.ZENQATEST2\Downloads\eBay_Recent.apk”,“appPackage”:“com.ebay.mobile”,“app
Activity”:“.activities.eBay”,“platformVersion”:“4.0.3”,“automationName”:“Selendr
oid”,“platformName”:“Android”,“udid”:“HT34APG02807”,“deviceName”:“HTC Desire V”}
}
info: Client User-Agent string: Apache-HttpClient/4.3.4 (java 1.5)
info: [debug] Using local app from desired caps: C:\Users\raghuadmin1.ZENQATEST2
\Downloads\eBay_Recent.apk
info: [debug] Creating new appium session c4bc9d9f-741a-4f52-8c67-d5e7f5cfe1cb
info: [debug] Starting selendroid server
info: [debug] Checking whether selendroid is built yet
info: [debug] Selendroid server exists!
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 C:\Users\raghuadmin1.ZENQATEST2\Downloads\adt\adt\s
dk\platform-tools\adb.exe
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices…
info: [debug] executing: “C:\Users\raghuadmin1.ZENQATEST2\Downloads\adt\adt\sdk
platform-tools\adb.exe” devices
info: [debug] 1 device(s) connected
info: Found device HT34APG02807
info: [debug] Setting device id to HT34APG02807
info: [debug] Waiting for device to be ready and to respond to shell commands (t
imeout = 5)
info: [debug] executing: “C:\Users\raghuadmin1.ZENQATEST2\Downloads\adt\adt\sdk
platform-tools\adb.exe” -s HT34APG02807 wait-for-device
info: [debug] executing: “C:\Users\raghuadmin1.ZENQATEST2\Downloads\adt\adt\sdk
platform-tools\adb.exe” -s HT34APG02807 shell “echo ‘ready’”
info: [debug] Starting logcat capture
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from C:\Users\raghuadmin1.ZENQATEST2\Downloads\adt\adt
sdk\build-tools\android-4.4W\aapt.exe
info: [debug] hasInternetPermissionFromManifest: “C:\Users\raghuadmin1.ZENQATEST
2\Downloads\adt\adt\sdk\build-tools\android-4.4W\aapt.exe” dump badging “C:\User
s\raghuadmin1.ZENQATEST2\Downloads\eBay_Recent.apk”
info: [debug] Rebuilt selendroid server does not exist, inserting modified manif
est
info: [debug] Inserting selendroid manifest
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from C:\Users\raghuadmin1.ZENQATEST2\Downloads\adt\adt
sdk\build-tools\android-4.4W\aapt.exe
info: [debug] Compiling manifest C:\Windows\Temp\com.ebay.mobile\AndroidManifest
.xml
info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: Required platform does
n’t exist (API level >= 17)
info: [debug] Error: Required platform doesn’t exist (API level >= 17)
at ADB.compileManifest (C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm
node_modules\appium\node_modules\appium-adb\lib\adb.js:305:15)
at null. (C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm\nod
e_modules\appium\lib\devices\android\selendroid.js:439:16)
at C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm\node_modules\appium\n
ode_modules\async\lib\async.js:610:21
at C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm\node_modules\appium\n
ode_modules\async\lib\async.js:249:17
at iterate (C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm\node_modules
\appium\node_modules\async\lib\async.js:149:13)
at C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm\node_modules\appium\n
ode_modules\async\lib\async.js:160:25
at C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm\node_modules\appium\n
ode_modules\async\lib\async.js:251:21
at C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm\node_modules\appium\n
ode_modules\async\lib\async.js:615:34
at ADB.checkSdkBinaryPresent (C:\Users\raghuadmin1.ZENQATEST2\AppData\Roamin
g\npm\node_modules\appium\node_modules\appium-adb\lib\adb.js:103:5)
at null. (C:\Users\raghuadmin1.ZENQATEST2\AppData\Roaming\npm\nod
e_modules\appium\lib\devices\android\selendroid.js:437:30)
info: [debug] Responding to client with error: {“status”:33,“value”:{“message”:"
A new session could not be created. (Original error: Required platform doesn’t e
xist (API level >= 17))",“origValue”:"Required platform doesn’t exist (API level

= 17)"},“sessionId”:null}
info: ← POST /wd/hub/session 500 4375.558 ms - 220

Well, now you have a new error. That may be good. :wink:

Open the Android sdk manager and check if you have API 17 installed on your machine.