Error Stack Trace
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:4723 [/127.0.0.1] failed: Connection refused: connect
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:90) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:644)
Findings/Solution
Make sure JDK is installed properly on the machine.
Check Android SDK Tools and Android SDK Platform-tools are properly added and configured in eclipse or other IDE you are using.
Check if all the capabilities are set:-
DesiredCapabilities capabilites = new DesiredCapabilities(); capabilites.setCapability("device name", "deviceName"); capabilites.setCapability("platformVersion", "platformVersion"); capabilites.setCapability("platformName", "Android"); capabilites.setCapability("appPackage", "com.appPackage"); capabilites.setCapability("appActivity", "com.appActivity"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilites
By rechecking the above steps I was able to fix this issue. And the function will look like this
public static AndroidDriver<MobileElement> driver=null;
public static AppiumDriverLocalService service=null;
service = AppiumDriverLocalService.buildDefaultService();
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platormName", "Android");
capabilities.setCapability("deviceName", "DEVICENAME");
capabilities.setCapability("appPackage","com.vm.dashboard);
capabilities.setCapability("appActivity","com.vm.dashboard.activity.Activity");
service.start();
driver = new AndroidDriver<MobileElement>(service, capabilities);