在Android Studio项目中使用htmlunit时,没有Lorg/apache/http/conn/ssl/Al



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

java.lang.BootstrapMethodError: Exception from call site

但我能够通过在等级中添加这个来解决这个问题:

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)

显然,AllowAllHostnameVerifier在其自己的类或其超类中没有静态字段实例。我不知道怎么解决这个问题。

使用android的端口:

https://github.com/HtmlUnit/htmlunit-android

使用此作为依赖项:

implementation("net.sourceforge.htmlunit:htmlunit-android:2.63.0")

如hc.apache.org所述:

AllowAllHostnameVerifier已弃用。(4.4(使用NoopHostnameVerifier

如果将依赖项的版本降级为4.3(2013~2015(,则会解决异常。

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

相关内容

最新更新