Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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应用程序-线程中的异常;“主要”;java.lang.ExceptionInInitializerError-原因:java.lang.IllegalArgumentException_Java_Android_Appium_Illegalargumentexception - Fatal编程技术网

Java应用程序-线程中的异常;“主要”;java.lang.ExceptionInInitializerError-原因:java.lang.IllegalArgumentException

Java应用程序-线程中的异常;“主要”;java.lang.ExceptionInInitializerError-原因:java.lang.IllegalArgumentException,java,android,appium,illegalargumentexception,Java,Android,Appium,Illegalargumentexception,我正在用Java学习Appium,并试图通过设置构造函数应用pageObjects,将驱动程序传递给我的测试用例。当我执行代码时,我得到了以下错误,我在网上搜索,没有找到解决方案。请帮我调查一下这个问题。我是一个Java编程新手 Sep 17, 2020 3:29:25 PM io.appium.java_client.remote.AppiumCommandExecutor$1 lambda$0 INFO: Detected dialect: W3C Exception in thread &

我正在用Java学习Appium,并试图通过设置构造函数应用pageObjects,将驱动程序传递给我的测试用例。当我执行代码时,我得到了以下错误,我在网上搜索,没有找到解决方案。请帮我调查一下这个问题。我是一个Java编程新手

Sep 17, 2020 3:29:25 PM io.appium.java_client.remote.AppiumCommandExecutor$1 lambda$0
INFO: Detected dialect: W3C
Exception in thread "main" java.lang.ExceptionInInitializerError
    at io.appium.java_client.pagefactory.utils.ProxyFactory.getEnhancedProxy(ProxyFactory.java:52)
    at io.appium.java_client.pagefactory.utils.ProxyFactory.getEnhancedProxy(ProxyFactory.java:33)
    at io.appium.java_client.pagefactory.AppiumFieldDecorator.proxyForAnElement(AppiumFieldDecorator.java:222)
    at io.appium.java_client.pagefactory.AppiumFieldDecorator.access$0(AppiumFieldDecorator.java:220)
    at io.appium.java_client.pagefactory.AppiumFieldDecorator$1.proxyForLocator(AppiumFieldDecorator.java:105)
    at org.openqa.selenium.support.pagefactory.DefaultFieldDecorator.decorate(DefaultFieldDecorator.java:62)
    at io.appium.java_client.pagefactory.AppiumFieldDecorator.decorate(AppiumFieldDecorator.java:160)
    at org.openqa.selenium.support.PageFactory.proxyFields(PageFactory.java:113)
    at org.openqa.selenium.support.PageFactory.initElements(PageFactory.java:105)
    at pageObjects.HomePage.<init>(HomePage.java:18)
    at TestCases.Basics.main(Basics.java:22)
Caused by: java.lang.IllegalArgumentException
    at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:79)
    at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:49)
    at net.sf.cglib.core.DefaultGeneratorStrategy.getClassVisitor(DefaultGeneratorStrategy.java:30)
    at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
    at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:332)
    at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:96)
    at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:94)
    at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
    at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
    at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:119)
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:294)
    at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153)
    at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73)
    ... 11 more
Basics.java代码:

package pageObjects;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.PageFactory;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;

public class HomePage{
    //All the objects belongs to one page will be defined in a java class
    //1. Call the driver object from testcase to PageObject file

    //Concatenate driver
    public HomePage(AppiumDriver driver) {
        // TODO Auto-generated constructor stub
        //AppiumFieldDecorator give the ability to test across iOS and Android platforms
        PageFactory.initElements(new AppiumFieldDecorator(driver), this);
    }

    @AndroidFindBy(xpath="//android.widget.TextView[@text='Preference']")
    public WebElement preferences;

}
package TestCases;

import java.net.MalformedURLException;
import java.util.concurrent.TimeUnit;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import pageObjects.HomePage;
import pageObjects.PreferencesPage;

public class Basics extends Base{

    public static void main(String[] args) throws MalformedURLException {
    // TODO Auto-generated method stub

    AndroidDriver<AndroidElement> driver = Capabilities();
    /*  
     *  //xpath id className, androidUIautomator
     *  xpath Syntax
     *  //tagName[@attribute='value']
     */
    HomePage home = new HomePage(driver);
    home.preferences.click();
    //PreferencesPage preferences = new PreferencesPage(driver);
    driver.findElementByXPath("//android.widget.TextView[@text='Preference']").click();
    driver.findElementByXPath("//android.widget.TextView[@text='3. Preference dependencies']").click();
    driver.findElementById("android:id/checkbox").click();
    driver.findElementByXPath("(//android.widget.RelativeLayout)[2]").click();
    driver.findElementByClassName("android.widget.EditText").sendKeys("hello");
    driver.findElementsByClassName("android.widget.Button").get(1).click();
        
    }

}
封装测试用例;
导入java.net.MalformedURLException;
导入java.util.concurrent.TimeUnit;
导入io.appium.java_client.android.AndroidDriver;
导入io.appium.java_client.android.AndroidElement;
导入pageObjects.HomePage;
导入pageObjects.PreferencesPage;
公共类基础扩展了基础{
publicstaticvoidmain(字符串[]args)引发畸形的DurLexException{
//TODO自动生成的方法存根
AndroidDriver=Capabilities();
/*  
*//xpath id类名称,androidUIautomator
*xpath语法
*//标记名[@attribute='value']
*/
主页主页=新主页(驱动程序);
home.preferences.click();
//PreferencesPage preferences=新的PreferencesPage(驱动程序);
driver.findelementbypath(“//android.widget.TextView[@text='Preference'])。单击();
driver.findelementbypath(“//android.widget.TextView[@text='3.Preference dependencies'])。单击();
driver.findElementById(“android:id/checkbox”)。单击();
driver.findelementbypath(“(//android.widget.RelativeLayout)[2]”。单击();
driver.findElementByClassName(“android.widget.EditText”).sendKeys(“hello”);
driver.findElementsByClassName(“android.widget.Button”).get(1.click();
}
}

我通过将这个Java项目转换为Maven项目解决了这个问题。这个问题是由不同版本的兼容性引起的吗?有人有类似的问题吗?