Java 在Android Studio项目中使用htmlunit时,没有Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier类型的静态字段实例

Java 在Android Studio项目中使用htmlunit时,没有Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier类型的静态字段实例,java,android,android-studio,htmlunit,Java,Android,Android Studio,Htmlunit,我正在Android Studio项目中使用htmlunit 2.36.0。我成功地编译了apk,但是当我尝试获取网页时,我遇到了一些运行时错误。 之前,我遇到以下错误: java.lang.BootstrapMethodError: Exception from call site 但我通过在gradle中添加以下内容解决了这个问题: compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetComp

我正在Android Studio项目中使用htmlunit 2.36.0。我成功地编译了apk,但是当我尝试获取网页时,我遇到了一些运行时错误。 之前,我遇到以下错误:

java.lang.BootstrapMethodError: Exception from call site
但我通过在gradle中添加以下内容解决了这个问题:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
然而,现在我面临另一个错误:

 java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar!classes3.dex)
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:151)
        at com.gargoylesoftware.htmlunit.httpclient.HtmlUnitSSLConnectionSocketFactory.buildSSLSocketFactory(HtmlUnitSSLConnectionSocketFactory.java:89)
        at com.gargoylesoftware.htmlunit.HttpWebConnection.configureHttpsScheme(HttpWebConnection.java:635)
        at com.gargoylesoftware.htmlunit.HttpWebConnection.createHttpClientBuilder(HttpWebConnection.java:558)
        at com.gargoylesoftware.htmlunit.HttpWebConnection.getHttpClientBuilder(HttpWebConnection.java:519)
        at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:171)
        at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1407)
        at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1326)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:396)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:317)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:469)
        at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:450)
java.lang.NoSuchFieldError:没有Lorg/apache/http/conn/ssl/AllowlHostNameVerifier类型的静态字段实例;Lorg/apache/http/conn/ssl/AllowlHostNameVerifier类中;或其超类(声明'org.apache.http.conn.ssl.AllowAllHostnameVerifier'出现在/system/framework/framework.jar!classes3.dex中)
位于org.apache.http.conn.ssl.SSLConnectionSocketFactory(SSLConnectionSocketFactory.java:151)
在com.gargoylesoftware.htmlunit.httpclient.htmlunitslslconnectionsocketfactory.buildsslssocketfactory(htmlunitslconnectionsocketfactory.java:89)
位于com.gargoylesoftware.htmlunit.HttpWebConnection.configureHttpsScheme(HttpWebConnection.java:635)
在com.gargoylesoftware.htmlunit.HttpWebConnection.createHttpClientBuilder(HttpWebConnection.java:558)上
位于com.gargoylesoftware.htmlunit.HttpWebConnection.getHttpClientBuilder(HttpWebConnection.java:519)
位于com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:171)
位于com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1407)
在com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1326)上
在com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:396)上
在com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:317)上
在com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:469)上
在com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:450)上
显然,AllowlHostNameVerifier在其自己的类或其超类中没有静态字段实例。我不知道如何修复此问题。

如文件所述:

AllowAllHostnameVerifier
已弃用。(
4.4
)使用
NoopHostnameVerifier

如果您将dependencies的版本降级为
4.3
(2013~2015),则异常将得到解决

implementation 'net.sourceforge.htmlunit:htmlunit:2.15'

@Deborahan主要的问题是htmlunit。htmlunit 2.36.0已删除AllowAllHostnameVerifier@DeborahAnn您不能将htmlunit 2.36.0用于较低版本的HttpClientWe talk in chat?顺便说一句,它仅适用于
实现'net.sourceforge.htmlunit:htmlunit:2.14'
。不需要http组件。我忘了问你一件事。您是否有机会尝试2.36.0以下的其他版本?2.14是唯一回避这个问题的方法吗?