org - importar httpclient android studio
Obteniendo NoSuchFieldError INSTANCE org/apache/http/message/BasicHeaderValueParser (4)
Estoy trabajando en una aplicación para Android. Estoy usando httpcore 4.3.3. Obtengo 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 un poco de googlear y entiendo por qué recibo el error, pero no estoy seguro de cómo solucionarlo. Por lo que he leído, parece que ContentType intenta hacer uso del 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''
Desafortunadamente, las versiones estándar de HttpCore no se pueden usar en Android. Utilice el puerto Android de Apache HttpClient, que también incluye las clases de HttpCore requeridas
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 refractar el nombre de la ruta. Funciona para mi.
Parece que usas jars incompatibles para httpmime y httpclient-android. Trate de usar la versión 4.3.6 de httpmime
Una solución simple es usar:
https://code.google.com/p/httpclientandroidlib/
Es el puerto de Appache HttpClient para el ajuste de Android en 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".