java - 调用站点 #4 引导方法的异常。代码在 Android Studio 中不起作用,但在 Eclipse 中起作用

标签 java android htmlunit

我正在编写代码以使用 HtmlUnit 登录网站。它一直在 Eclipse 中工作,但现在我决定将它移到 Android Studio 中,在应用程序中使用它。我有 2 个问题。

  • 为什么 HtmlUnit 需要 API 26,这对于现在的技术来说已经很高了(只有 19% 的用户),但它只是一个 web 模拟器?
  • 为什么在创建 webClient 时出现此错误?我的异常(exception)是:
  • java.lang.BootstrapMethodError: Exception from call site #4 bootstrap method
        at com.gargoylesoftware.htmlunit.WebClient.addDefaultHeaders(WebClient.java:1496)
        at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1392)
        at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1321)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:394)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:315)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:466)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:448)
        at notas.com.mistarapp.Student.login(Student.java:65)
    

    这是我正在经历的代码。所有内容均已导入,并且未突出显示为错误。这是我的代码:
    try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
    
        HtmlPage firstPage = webClient.getPage(link);
    
        // waitForBackgroundJavaScript has to be called after every action
        webClient.waitForBackgroundJavaScript(100);
    
        System.out.println("Access to the login page is made.");
        System.out.println("-------------------------------------------------------------------------------");
    
        // Get the form that we are dealing with and within that form,
        // find the submit button and the field that we want to change.
        HtmlForm form = firstPage.getFormByName("loginform");
    
    

    线上出现错误:
    HtmlPage firstPage = webClient.getPage(link);
    

    最佳答案

    我已通过将 Java8 添加到 android 部分的应用级 build.gradle 来解决此问题。

    构建中的 Java 8 可从 9.0.0 及更高版本开始运行。您可以在 https://developer.android.com/studio/write/java8-support 了解有关如何启用此功能的更多信息。 .

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    

    关于java - 调用站点 #4 引导方法的异常。代码在 Android Studio 中不起作用,但在 Eclipse 中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55034848/

    相关文章:

    java - .switchTo().frame( <'frameId' >);不使用 HtmlUnit 驱动程序

    java - 为什么java int允许使用|运算符(operator) ?其评价如何?

    android - 如何为我的 Android 应用程序获取 Google Places API key

    Java KeyListener 监听方向键,不带 "Windows key"

    android - 从加速度计中去除重力...文档代码

    Android RenderScript 与 OpenGL ES 着色语言的关系

    Java HtmlUnit 表单重定向问题

    java - HtmlUnit 无法自动登录网站

    java - 由于 : java. lang.OutOfMemoryError: PermGen 空间,Tomcat6 经常挂起

    java - 一个大的 switch 语句还是几个小的 switch 语句?