0

I am using appium latest version 1.8.1,selenium 3.14.0 java client, appium 6.1.0 java client. below is my code to get android driver instance:

public AndroidDriver<?> driver;
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.APPIUM_VERSION, “1.8.1”);
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, “K9 Viraat”);
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, “6.0”);
capabilities.setCapability(MobileCapabilityType.PLATFORM, “Android”);
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, 
    "UiAutomator2");
driver = new AndroidDriver<>(new URL(“https://0.0.0.0:4723/wd/hub”),
    capabilities);

I had earlier appium 1.4 and corresponding java client. But after updation to 1.8.1 version I am getting error :

“java.lang.NoClassDefFoundError: 

org/openqa/selenium/remote/internal/OkHttpClient$Factory”

I also updated selenium java client to 3.14.0 but it’s not working. If anyone has experienced this, kindly provide steps to resolve this.

ʍѳђઽ૯ท
  • 16,646
  • 7
  • 53
  • 108
abhi-
  • 3
  • 2
  • 1
    Possible duplicate of [How to solve java.lang.NoClassDefFoundError?](https://stackoverflow.com/questions/17973970/how-to-solve-java-lang-noclassdeffounderror) – ʍѳђઽ૯ท Aug 09 '18 at 17:30

1 Answers1

1

You have problem with the jar files you are using. I suggest you to create a maven project as it is easy to manage dependency files. Include following dependency in your pom.xml files:

<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
<dependency>
   <groupId>io.appium</groupId>
   <artifactId>java-client</artifactId>
   <version>6.1.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>3.14.0</version>
</dependency>

Define your desiredCapabilites as follow. You need to provide appPackage and appActivity in your desiredCapabilities.

AppiumDriver<MobileElement> driver;
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "Android phone");
caps.setCapability("udid", "your device's udid");
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "your device's platform version");
caps.setCapability("appPackage", "your app's appPackage name");
caps.setCapability("appActivity", "your app's main appActivity name");
driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);

Make your you have started your appium server.

Suban Dhyako
  • 2,436
  • 4
  • 16
  • 38
  • Thanks , Suban for your answer. I followed your steps and I only changed the appium version to 5.0.4. It worked.. Thanks. – abhi- Aug 14 '18 at 08:47