Нет данных c поле INSTANCE типа Lorg / apache / http / conn / ssl / AllowAllHostnameVerifier при использовании htmlunit в Android Studio Project - PullRequest
1 голос
/ 27 февраля 2020

Я использую htmlunit 2.36.0 в моем Android Studio Project. Я успешно скомпилировал 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)

По-видимому, в его собственном классе или его суперклассах отсутствует экземпляр поля stati c поля AllowAllHostnameVerifier. Я понятия не имею, как это исправить.

1 Ответ

0 голосов
/ 28 февраля 2020

Как ч c. apache .org задокументировано:

AllowAllHostnameVerifier устарело. (4.4) Используйте NoopHostnameVerifier

Если вы понижаете версию зависимостей до 4.3 (2013 ~ 2015), исключение будет разрешено.

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