Problema de HttpClient
Problemas de uso
Aunque httpClient ya no se usa, no se descarta que algunos tipos como yo lo usen en proyectos antiguos y lo dejen mantener. Oye, esto es un pozo real, es una bolsa que fue abandonada hace mucho tiempo. ¿Por qué todavía la usas? Realmente no lo entiendo.
Si tiene los siguientes problemas, enhorabuena por su entrada.
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:classes2.dex)
Esto significa que tanto HttpClient como la capa Framework tienen AllowAllHostnameVerifier
este archivo, lo que genera conflictos.
Situación
- Puede ser causado por la introducción del paquete jar, que es el siguiente:
implementation group: 'org.apache.httpcomponents' , name: 'httpclient', version: '4.5.12'
solución
- Elimine la cita anterior, es decir, no use la oración anterior, ni use paquetes externos 4.5.12, use Android nativo
- Agrega esta oración
android {
useLibrary 'org.apache.http.legacy'
}
Es decir, solo agregue useLibrary 'org.apache.http.legacy'
esto en el archivo de compilación y no use otras referencias a HttpClient.
para resumir:
Creo que es mejor cambiar el archivo del paquete antes. Parece que todos están descartados. No hay que perder el tiempo lidiando con esto. Es una lección sangrienta, aunque al final se resolvió.