title: Appium android hybrid app testing error
body: <p>I made an android hybrid app using Ionic 2.Now I want to test it using Appium,Selenium and TestNg. I could able to test native android app successfully but when I'm trying to test hybrid apps, It gives me the following error. My chrome version in both pc and the android device is up-to date.</p>
  
  <p><strong>Here is the code:</strong></p>
  
  <pre><code>import io.appium.java_client.AppiumDriver;
  import io.appium.java_client.android.AndroidDriver;
  
  // Llibrary for Appium drivers
  import io.appium.java_client.android.AndroidDriver;
  
  // Library to create the path to APK
  import java.io.File;
  
  // Library used to verify if URL is malformed
  import java.net.MalformedURLException;
  
  // Library used to create URL for the Appium server
  import java.net.URL;
  import java.util.concurrent.TimeUnit;
  
  // Libraries for configuring Desired Capabilities
  import io.appium.java_client.remote.MobileCapabilityType;
  
  import org.openqa.selenium.By;
  import org.openqa.selenium.Capabilities;
  import org.openqa.selenium.WebDriver;
  import org.openqa.selenium.WebElement;
  import org.openqa.selenium.remote.CapabilityType;
  import org.openqa.selenium.remote.DesiredCapabilities;
  import org.openqa.selenium.remote.RemoteWebDriver;
  import org.openqa.selenium.support.ui.ExpectedConditions;
  import org.openqa.selenium.support.ui.WebDriverWait;
  import org.testng.annotations.BeforeTest;
  import org.testng.annotations.Test;
  
  public class StartApplication {
  
      public AppiumDriver&lt;WebElement&gt; driver;
  
      @BeforeTest
      public void setUp() throws MalformedURLException{
          DesiredCapabilities cap = new DesiredCapabilities();
          //capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Selendroid");
          cap.setCapability("deviceName","AVY9KA96C0700245");
          cap.setCapability("platformVersion","5.1");
          cap.setCapability("platformName","Android");
  
          cap.setCapability("appPackage", "com.ionicframework.tbag290562"); //Replace with your app's package
          cap.setCapability("appWaitPackage","com.ionicframework.tbag290562");
          cap.setCapability("appActivity", ".MainActivity"); //Replace with app's Activity
          cap.setCapability("appWaitActivity",".MainActivity");
          driver = new AndroidDriver&lt;WebElement&gt;(new URL("http://127.0.0.1:4723/wd/hub"),cap);
  
      }
      @Test(priority = 1)
      public void initiateTest(){
          driver.context("WEBVIEW_com.ionicframework.tbag290562");
  
          driver.findElementByName("q").sendKeys("test test test");
  
          driver.findElementByName("btng").click();
      }
  
  
  }
  </code></pre>
  
  <p><strong>Error</strong></p>
  
  <pre><code>Sep 28, 2017 5:07:06 PM org.openqa.selenium.remote.ProtocolHandshake createSession
  INFO: Detected dialect: OSS
  
  io.appium.java_client.NoSuchContextException: An unknown server-side error occurred while processing the command. Original error: unknown error: Chrome version must be &gt;= 55.0.2883.0
    (Driver info: chromedriver=2.28.455520 (cc17746adff54984afff480136733114c6b3704b),platform=Windows NT 10.0.10240 x86_64) (WARNING: The server did not provide any stacktrace information)
  Command duration or timeout: 0 milliseconds
  Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
  System info: host: 'RAMITHA-LAP', ip: '192.168.80.167', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_121'
  Driver info: io.appium.java_client.android.AndroidDriver
  Capabilities [{appPackage=com.ionicframework.tbag290562, deviceScreenSize=720x1280, networkConnectionEnabled=true, warnings={}, appWaitPackage=com.ionicframework.tbag290562, appWaitActivity=.MainActivity, databaseEnabled=false, deviceName=AVY9KA96C0700245, platform=LINUX, deviceUDID=AVY9KA96C0700245, appActivity=.MainActivity, desired={appPackage=com.ionicframework.tbag290562, appActivity=.MainActivity, platformVersion=5.1, appWaitPackage=com.ionicframework.tbag290562, appWaitActivity=.MainActivity, platformName=Android, deviceName=AVY9KA96C0700245}, platformVersion=5.1, webStorageEnabled=false, locationContextEnabled=false, takesScreenshot=true, javascriptEnabled=true, deviceModel=HUAWEI TIT-AL00, deviceManufacturer=HUAWEI, platformName=LINUX}]
  Session ID: 6e7233e3-08af-49ef-ba03-88cff6e731a3
  
      at io.appium.java_client.AppiumDriver.context(AppiumDriver.java:216)
      at StartApplication.initiateTest(StartApplication.java:53)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)
      at org.testng.internal.Invoker.invokeMethod(Invoker.java:661)
      at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)
      at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)
      at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
      at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
      at org.testng.TestRunner.privateRun(TestRunner.java:744)
      at org.testng.TestRunner.run(TestRunner.java:602)
      at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
      at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
      at org.testng.SuiteRunner.run(SuiteRunner.java:289)
      at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
      at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
      at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
      at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
      at org.testng.TestNG.runSuites(TestNG.java:1144)
      at org.testng.TestNG.run(TestNG.java:1115)
      at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
      at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
  Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: unknown error: Chrome version must be &gt;= 55.0.2883.0
    (Driver info: chromedriver=2.28.455520 (cc17746adff54984afff480136733114c6b3704b),platform=Windows NT 10.0.10240 x86_64) (WARNING: The server did not provide any stacktrace information)
  Command duration or timeout: 0 milliseconds
  Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
  System info: host: 'RAMITHA-LAP', ip: '192.168.80.167', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_121'
  Driver info: io.appium.java_client.android.AndroidDriver
  Capabilities [{appPackage=com.ionicframework.tbag290562, deviceScreenSize=720x1280, networkConnectionEnabled=true, warnings={}, appWaitPackage=com.ionicframework.tbag290562, appWaitActivity=.MainActivity, databaseEnabled=false, deviceName=AVY9KA96C0700245, platform=LINUX, deviceUDID=AVY9KA96C0700245, appActivity=.MainActivity, desired={appPackage=com.ionicframework.tbag290562, appActivity=.MainActivity, platformVersion=5.1, appWaitPackage=com.ionicframework.tbag290562, appWaitActivity=.MainActivity, platformName=Android, deviceName=AVY9KA96C0700245}, platformVersion=5.1, webStorageEnabled=false, locationContextEnabled=false, takesScreenshot=true, javascriptEnabled=true, deviceModel=HUAWEI TIT-AL00, deviceManufacturer=HUAWEI, platformName=LINUX}]
  Session ID: 6e7233e3-08af-49ef-ba03-88cff6e731a3
      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:215)
      at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:167)
      at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
      at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:82)
      at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:45)
      at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
      at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:89)
      at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:646)
      at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
      at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
      at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
      at io.appium.java_client.AppiumDriver.context(AppiumDriver.java:213)
      ... 25 more
  
  
  ===============================================
  Default Suite
  Total tests run: 2, Failures: 1, Skips: 0
  ===============================================
  
  
  Process finished with exit code 0
  </code></pre>