Estoy trabajando en una aplicación en Android. Estoy usando httpcore 4.3.3. Entiendo esto cuando trato de usar 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 algunas búsquedas en Google y entiendo por qué obtengo el error, pero no estoy seguro de cómo solucionarlo. Por lo que he leído, parece que ContentType intenta hacer uso de BasicHeaderValueParser que viene con Android y esa clase aún no tiene el campo INSTANCE. ¿Alguna ayuda, por favor?
Estas son las importaciones relevantes:
compile('org.apache.httpcomponents:httpmime:4.3.6') { exclude module: 'httpclient' } compile 'org.apache.httpcomponents:httpcore:4.3.3'
Lamentablemente, las versiones originales de HttpCore no se pueden usar en Android. Utilice Apache HttpClient Android Port, 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 Apache Httpclient Jar y refraccione el nombre de ruta. Funciona para mi.
La solución simple es usar:
https://code.google.com/p/httpclientandroidlib/
Es el puerto Appache HttpClient para Android con un nombre de paquete diferente para que no interfiera con la versión existente en Android. Importe el jar en el proyecto de Android y en lugar de “org.apache.http” use “ch.boye.httpclientandroidlib”.
Parece que utiliza jar incompatibles para httpmime y httpclient-android. Intenta usar la versión 4.3.6 de httpmime