HttpClient java.lang.NoSuchFieldError: ningún problema de INSTANCE de campo estático en la nueva API de Android

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 AllowAllHostnameVerifiereste archivo, lo que genera conflictos.

Situación

  1. 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ó.

Supongo que te gusta

Origin blog.csdn.net/honeylife/article/details/105136442
Recomendado
Clasificación