【问题标题】:Maven-java.lang.NoSuchFieldError: INSTANCE when testing with AppiumMaven-java.lang.NoSuchFieldError: 使用 Appium 测试时的实例
【发布时间】:2015-09-02 22:47:21
【问题描述】:

我有一个使用 Appium 测试一些移动应用程序的 Maven 项目。当我尝试从 mvn test -Dtest=AppiumTest 运行它时,我得到 below exception

下面是我的 pom.xml 依赖:

<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.2</version>
</dependency>

由于上述异常,@BeforeTest 中编写的配置失败。 如何解决?我正在创建如下驱动程序实例:

driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);

【问题讨论】:

    标签: maven appium


    【解决方案1】:

    NoSuchFieldError: 如果应用程序尝试访问或修改对象的指定字段,并且该对象不再具有该字段,则抛出该错误。 通常,这个错误会被编译器捕获;如果类的定义发生了不兼容的更改,则该错误只会在运行时发生。


    解决方案: 如果您只重新编译部分代码,通常会引发此错误。您的旧代码引用了重新编译的类文件中不再存在的字段。解决方案是清除所有类文件并重新编译所有内容。

    如果在运行时仍然抛出错误,那么您可能使用一个版本的库进行编译,但在运行时使用另一个版本。您必须验证您的类路径是否包含指定库的正确版本。

    也尝试使用:

    <dependency>
                <groupId>io.appium</groupId>
                <artifactId>java-client</artifactId>
                <version>3.1.0</version>
                <scope>compile</scope>
     </dependency>
    

    【讨论】:

    • 是的,上面的 Appium Java 客户端版本和 httpclient 4.3.1 我的代码终于可以与 appium 通信了。谢谢!
    【解决方案2】:

    出现错误的类在httpcore 库中,是httpclient 的依赖项。也许其他一些库正在拉旧版本。

    尝试添加到您的pom.xml

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.3.2</version>
    </dependency>
    

    或以上版本。

    也可以通过命令查看maven依赖树,查看项目使用的是哪个版本:

    mvn dependency:tree -Dverbose -Dincludes=httpcore
    

    verbose 模式下,依赖关系树显示被忽略的依赖关系:与另一个重复,与另一个版本和/或范围冲突,以及在依赖关系树中引入循环。

    https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html

    https://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html

    【讨论】:

    • :通过上面的命令,我可以解决依赖问题。现在我的代码正在与 Appium 通信。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2014-03-04
    • 2021-09-19
    • 2017-10-09
    • 2015-09-06
    • 1970-01-01
    相关资源
    最近更新 更多