Obtener NoSuchFieldError INSTANCE org / apache / http / message / BasicHeaderValueParser
Estoy trabajando en una aplicación en Android. Estoy usando httpcore 4.3.3. Consigo esto cuando intento utilizar ContentType.parse(string)
java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/message/BasicHeaderValueParser; in class Lorg/apache/http/message/BasicHeaderValueParser; or its superclasses (declaration of 'org.apache.http.message.BasicHeaderValueParser' appears in /system/framework/ext.jar)
He hecho algunos google y entiendo por qué estoy recibiendo el error, pero no estoy seguro de cómo solucionarlo. Por lo que he leído, parece que ContentType intenta hacer uso de la BasicHeaderValueParser que viene con Android y que la clase no tiene el campo INSTANCE todavía. Cualquier ayuda por favor?
- Almacenamiento del cliente Android Http
- HttpClient no importará en Android Studio
- Cómo cambiar de HttpClient a HttpUrlConnection
- Problema de compilación de Gradle: actualización de Quickblox y httpclient en el último SDK23 de Android
- Android: Esquema 'http' no registrado en ICS 4.0.4 con proxy
Estas son las importaciones pertinentes:
compile('org.apache.httpcomponents:httpmime:4.3.6') { exclude module: 'httpclient' } compile 'org.apache.httpcomponents:httpcore:4.3.3'
- HttpClientBuilder falta en Android?
- Apache HttpClient 4.3 en Android 4.4
- Cadena de confianza de Android SSL con certificados intermedios (Apache HttpClient 4.X)
- IllegalArgumentException al instanciar HttpClient en Android
- Apache HttpClient 4.1 en Android
- Usando retrofit con persistencia de Cookie
- Java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE
- Problemas de tiempo de espera de conexión HTTP
Lamentablemente las versiones de HttpCore no se pueden utilizar en Android. Utilice Apache HttpClient Puerto Android que también incluye las clases HttpCore necesarias
compile('org.apache.httpcomponents:httpmime:4.3.6') { exclude module: 'httpclient' } compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
Descargue el último archivo de Apache Httpclient Jar y refracte el nombre de la ruta. Funciona para mi.
La solución simple es utilizar:
https://code.google.com/p/httpclientandroidlib/
Es el puerto Appache HttpClient para el envoltorio de Android en un nombre de paquete diferente para que no interfiera con la versión existente en Android. Importe el tarro en el proyecto de Android y en lugar de "org.apache.http" utilice "ch.boye.httpclientandroidlib".
Parece que usted utiliza jar incompatible para httpmime y httpclient-android. Intente utilizar la versión 4.3.6 de httpmime
- Error: Error de ejecución para la tarea ': app: buildInfo Debug Loader'
- ¿Cómo usar Android build.xml en eclipse?