无法在appium自动化期间切换android应用程序

问题描述:

我有以下代码。无法在appium自动化期间切换android应用程序

DesiredCapabilities capabilities =DesiredCapabilities.android(); 
capabilities.setCapability("device","Android"); 
      capabilities.setCapability("deviceName","hammerhead"); 
      capabilities.setCapability("platformName","Android"); 
      capabilities.setCapability("appPackage","com.android.calculator2"); 
      capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); 
AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
      driver.findElement(By.xpath("//*[@resource-id='com.android.calculator2:id/digit_7']")).click(); 
      driver.findElement(By.xpath("//*[@resource-id='com.android.calculator2:id/op_add']")).click(); 
driver.startActivity("com.android.browser","com.android.browser.BrowserActivity"); 

“java.lang.reflect.InvocationTargetException”在执行driver.startActivity行时发生错误。我在这里犯了什么错误?

Invocation Target Exception:- This exception occurs when an underlying method throws an exception. So if there is any method that is invoked using Reflection API throws any runtime exception, the Reflection API will wrap that exception in InvocationTargetException

您可以通过使用getCause()方法对InvocationTargetException找出原/实际exception

+0

原因:null target:java.lang.NoClassDefFoundError:org/apache/commons/lang3/StringUtils – user1700354

+0

所以现在您遇到了错误,您可以继续解决此问题。 JVM无法找到您的类定义。 – Paras

+0

我将commons-lang-2.6保留在构建路径中。仍然存在错误。但是如何从driver.startActivity()抛出这个异常呢? – user1700354

我也有同样的问题。这是由于StringUtils的问题。我下载了Apache Commons Lang插件,问题解决了。

下载可以在这里找到: http://commons.apache.org/proper/commons-lang/download_lang.cgi

下载后,在IDE中添加的commons-lang3-3.4.jar到外部库。