Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoSuchFieldError:实例异常由appium驱动程序varriable引发_Java_Android_Junit_Driver_Appium - Fatal编程技术网

java.lang.NoSuchFieldError:实例异常由appium驱动程序varriable引发

java.lang.NoSuchFieldError:实例异常由appium驱动程序varriable引发,java,android,junit,driver,appium,Java,Android,Junit,Driver,Appium,我正在尝试编写一个java类,它在android设备中打开一个apk文件,并通过appium按下一些按钮,代码如下: package new_appium_test; import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.remote.MobileCapabilityType; import java.io.File; import java.net.MalformedURLExcep

我正在尝试编写一个java类,它在android设备中打开一个apk文件,并通过appium按下一些按钮,代码如下:

package new_appium_test;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;


public class new_appium_test {
    public MobileDriver driver;
    @Before
    public void setUp() throws MalformedURLException, InterruptedException, Exception {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "GT-I9300"); //specify your cellphone name
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,"4.3"); //specify the platform version
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("appium-version", "1.2.4.1");
    capabilities.setCapability("appPackage","wizzo.mbc.net");
    capabilities.setCapability("appActivity","wizzo.mbc.net.activities.SplashActivity");
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }

    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    }
    @Test
    public void chooseEnglish() throws Exception
    {
    driver.findElement(By.name("English")).click();
    }
    @After
    public void tearDown() throws Exception {
    driver.quit();
    }
}
尽管出现了此故障跟踪:

java.lang.NoSuchFieldError: INSTANCE
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
    at org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:71)
    at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:57)
    at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:60)
    at org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.getDefaultHttpClientFactory(ApacheHttpClient.java:251)
    at org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.<init>(ApacheHttpClient.java:228)
    at org.openqa.selenium.remote.HttpCommandExecutor.getDefaultClientFactory(HttpCommandExecutor.java:89)
    at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:63)
    at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:58)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:155)
    at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:22)
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:202)
    at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:50)
    at new_appium_test.new_appium_test.setUp(new_appium_test.java:34)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74)
    at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33)
    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
java.lang.NoSuchFieldError:实例
位于org.apache.http.conn.ssl.SSLConnectionSocketFactory(SSLConnectionSocketFactory.java:144)
位于org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:71)
位于org.openqa.selenium.remote.internal.HttpClientFactory.(HttpClientFactory.java:57)
位于org.openqa.selenium.remote.internal.HttpClientFactory.(HttpClientFactory.java:60)
位于org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.getDefaultHttpClientFactory(ApacheHttpClient.java:251)
位于org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.(ApacheHttpClient.java:228)
位于org.openqa.selenium.remote.HttpCommandExecutor.getDefaultClientFactory(HttpCommandExecutor.java:89)
位于org.openqa.selenium.remote.HttpCommandExecutor。(HttpCommandExecutor.java:63)
位于org.openqa.selenium.remote.HttpCommandExecutor。(HttpCommandExecutor.java:58)
位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:155)
位于io.appium.java_client.DefaultGenericMobileDriver。(DefaultGenericMobileDriver.java:22)
位于io.appium.java_client.AppiumDriver。(AppiumDriver.java:202)
位于io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:50)
在new_appium_test.new_appium_test.setUp(new_appium_test.java:34)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于org.junit.internal.runners.beforeandeafterrunner.invokeMethod(beforeandeafterrunner.java:74)
位于org.junit.internal.runners.beforeandeafterrunner.runBefores(beforeandeafterrunner.java:50)
位于org.junit.internal.runners.beforeandeafterrunner.runProtected(beforeandeafterrunner.java:33)
位于org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
位于org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
位于org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
位于org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
位于org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
位于org.junit.internal.runners.beforeandeafterrunner.runProtected(beforeandeafterrunner.java:34)
位于org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
位于org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
问题出在命令driver=newandroiddriver(newurl(“”),capabilities)上
有人能告诉我为什么会发生这种情况吗?

如果应用程序试图访问或修改对象的指定字段,而该对象不再具有该字段,则不会引发此字段异常。如果此错误发生在Android驱动程序实例化中,那么可能是您拥有的某些功能不正确。没有appium版本-这样的功能。对于Android,设备名称也被忽略。尝试以下功能

 DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME,
     "Selendroid");
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.3");
    capabilities.setCapability(MobileCapabilityType.APP_PACKAGE: "wizzo.mbc.net");
    capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY: "wizzo.mbc.net.activities.SplashActivity");

我猜您的类路径(可能是Apache HTTP客户端)上有多个版本的某些依赖项。您的意思是我可能包含了多个包含相同类的.jar文件吗?是的。有时,您可以在IDE中打开项目并搜索有问题的类,它将向您显示它是什么JAR。请在eclipse中运行我的程序。因此,如果您知道可以提供帮助的工具,我将不胜感激。无论如何,感谢您的帮助。请参阅和