Issue
I am using htmlunit 2.36.0 in my Android Studio Project. I successfully compiled the apk but I am getting some runtime errors when I try to get a webpage. Before, I was getting the following error:
java.lang.BootstrapMethodError: Exception from call site
But I was able to fix the issue by adding this in the gradle:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
However, now I am facing another error:
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)
Apparently, there is no static field instance of AllowAllHostnameVerifier in its own class or or its superclasses. I have no idea how to fix this.
Solution
As hc.apache.org documented:
AllowAllHostnameVerifier
Deprecated. (4.4
) Use NoopHostnameVerifier
If you downgrade dependencies's version to 4.3
(2013~2015) exception will be resolved.
implementation 'net.sourceforge.htmlunit:htmlunit:2.15'
Answered By - A Farmanbar
Answer Checked By - Marie Seifert (JavaFixing Admin)