Appium - 在 PageFactory 获取 java.lang.RuntimeException: java.lang.NoSuchMethodException: jdk.proxy2.$Proxy9.proxyClassLookup()
Appium - Getting a java.lang.RuntimeException: java.lang.NoSuchMethodException: jdk.proxy2.$Proxy9.proxyClassLookup() at PageFactory
我在 运行 Appium 测试中遇到了这个异常。测试在 PageFactory 失败,但出现以下异常。
My POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0`
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.telepathy.test</groupId>
<artifactId>twitter</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.2.0</version>
</dependency>
</dependencies>
</project>
- 直到昨天这一切都运行良好,我的机器重新启动并且开始出现这个错误。
- 已尝试使用最新版本的 Appium (7.5.1)
- mvn clean and refresh, 更新了吗
此处失败:
PageFactory.initElements(新的 AppiumFieldDecorator(this.driver), 这个);
java.lang.RuntimeException: java.lang.NoSuchMethodException:
jdk.proxy2.$Proxy9.proxyClassLookup()
at io.appium.java_client.pagefactory.bys.builder.AppiumByBuilder.prepareAnnotationMethods(
ApiumByBuilder.java:84)
检查您使用的 Java 版本。我从 JDK v16 降级到 v15.0.2 并解决了问题。
您必须在 java 版本 1.8
上重建您的项目(这将是最低版本),然后您将必须插入您的 jre
和 jdk
对于 15
或更低版本,它应该被修复。
我也遇到了同样的问题,但没有得到任何解决方案。
只需检查您使用的是 AppiumDriver 而不是 AndroidDriver。
& 您在页面对象 class 中使用 @FindBy 注释而不是 @AndroidFindBy。
还使用 PageFactory.initElements(driver, this);
而不是 PageFactory.initElements(new AppiumFieldDecorator(driver), this);
这对我有用。它对你有用,请在这里确认。
谢谢
我遇到了同样的错误,但是当我通过 eclipse 在本地 运行 时,它工作正常,但是当我通过命令行 运行 时,它失败了,然后我在构建中添加了编译版本,即gradle 就我而言。同样的你可以加入maven也能解决问题。
我在 运行 Appium 测试中遇到了这个异常。测试在 PageFactory 失败,但出现以下异常。
My POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0`
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.telepathy.test</groupId>
<artifactId>twitter</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.2.0</version>
</dependency>
</dependencies>
</project>
- 直到昨天这一切都运行良好,我的机器重新启动并且开始出现这个错误。
- 已尝试使用最新版本的 Appium (7.5.1)
- mvn clean and refresh, 更新了吗
此处失败: PageFactory.initElements(新的 AppiumFieldDecorator(this.driver), 这个);
java.lang.RuntimeException: java.lang.NoSuchMethodException:
jdk.proxy2.$Proxy9.proxyClassLookup()
at io.appium.java_client.pagefactory.bys.builder.AppiumByBuilder.prepareAnnotationMethods(
ApiumByBuilder.java:84)
检查您使用的 Java 版本。我从 JDK v16 降级到 v15.0.2 并解决了问题。
您必须在 java 版本 1.8
上重建您的项目(这将是最低版本),然后您将必须插入您的 jre
和 jdk
对于 15
或更低版本,它应该被修复。
我也遇到了同样的问题,但没有得到任何解决方案。
只需检查您使用的是 AppiumDriver 而不是 AndroidDriver。
& 您在页面对象 class 中使用 @FindBy 注释而不是 @AndroidFindBy。
还使用 PageFactory.initElements(driver, this);
而不是 PageFactory.initElements(new AppiumFieldDecorator(driver), this);
这对我有用。它对你有用,请在这里确认。
谢谢
我遇到了同样的错误,但是当我通过 eclipse 在本地 运行 时,它工作正常,但是当我通过命令行 运行 时,它失败了,然后我在构建中添加了编译版本,即gradle 就我而言。同样的你可以加入maven也能解决问题。