Maven-java.lang.NoSuchFieldError:使用Appium进行测试时的实例
我有一个Maven项目,它用Appium测试一些移动应用程序。当我尝试从Maven-java.lang.NoSuchFieldError:使用Appium进行测试时的实例,maven,appium,Maven,Appium,我有一个Maven项目,它用Appium测试一些移动应用程序。当我尝试从mvn test-Dtest=AppiumTest运行它时,我得到下面的异常 下面是我对pom.xml的依赖性: <dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>2.1.0</version>
mvn test-Dtest=AppiumTest运行它时,我得到下面的异常
下面是我对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>
NoSuchFieldError:如果应用程序试图访问或修改对象的指定字段,而该对象不再具有该字段,则引发该错误。
通常,编译器会捕获此错误;只有在类的定义发生不兼容的更改时,才会在运行时发生此错误
解决方案:
如果仅部分重新编译代码,通常会引发此错误。您的旧代码引用了重新编译的类文件中不再存在的字段。解决方案是清除所有类文件并从新编译所有内容
如果在运行时仍然抛出错误,则可能使用库的一个版本进行编译,但在运行时使用另一个版本。必须验证类路径是否包含指定库的正确版本
也可以尝试使用:
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>3.1.0</version>
<scope>compile</scope>
</dependency>
木卫一
java客户端
3.1.0
编译
出现错误的类位于httpcore
库中,它是httpclient
的依赖项。也许其他库正在使用旧版本
尝试添加到您的pom.xml
:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.2</version>
</dependency>
在verbose
模式下,依赖关系树显示忽略的依赖关系:与另一个重复、与另一个版本和/或范围冲突,以及在依赖关系树中引入循环
是的,在上述Appium Java客户端版本和httpclient 4.3.1中,我的代码终于可以与Appium通信了。谢谢!:使用上面的命令,我可以解决依赖性问题。现在我的代码正在与Appium通信。谢谢
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.2</version>
</dependency>
mvn dependency:tree -Dverbose -Dincludes=httpcore