¿Alguien ha intentado utilizar una versión más nueva de Apache HttpClient en Android? Hay un error molesto en el HttpClient utilizado por Android y me preguntaba si tendría problemas para redistribuir HttpClient 4.1 con mi aplicación.Apache HttpClient 4.1 en Android
Respuesta
Eso no parece una buena idea, especialmente si los nombres de paquete y clase no se cambiaron en la versión más nueva de Cliente. Lo más probable es que no puedas predecir qué clase se usa (vieja o nueva).
Por si acaso alguien está interesado: he reconstruido mi aplicación con Apache HttpClient 4.01 y todo parece funcionar bien. La aplicación ha crecido solo en 100kB.
¿Puede darnos algunas instrucciones paso a paso de cómo compilar contra HTTPClient 4.x en lugar de la versión incorporada? – Ognyan
La mina ha crecido en 250kB (Apache HttpClient 4.2.1), la última versión de httpclientandroidlib desde julio de 2012 – Twilite
Ogre_BGR: ¿encontró alguna solución? Estoy intentando volver a empaquetar solo para utilizar HttpClient 4.3.1: http://stackoverflow.com/questions/21134237/how-to-repackage-httpclient-4-3-1-and-remove-dependencies-on- commons-logging – Stuck
Estaba ejecutando 4.1 correctamente hasta que comencé a usar ThreadSafeClientConnManager y Scheme, que produjo algunos errores de tiempo de ejecución desagradables.
ERROR/dalvikvm(1077): Could not find method org.apache.http.conn.scheme.Scheme.<init>, referenced from method com.example.MyActivity.download
WARN/dalvikvm(1077): VFY: unable to resolve direct method 3290: Lorg/apache/http/conn/scheme/Scheme;.<init> (Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V
WARN/dalvikvm(1077): VFY: rejecting opcode 0x70 at 0x0035
Sospecho que se utiliza el anterior Esquema en Android API que tiene un constructor diferente.
Creé una secuencia de comandos para convertir una versión original de HttpClient en un proyecto de biblioteca de Android. Los paquetes se renombran para que no haya confusión sobre qué clases se usan.
También ThreadSafeClientConnManager y Scheme funcionan bien.
Echale un vistazo: httpclientandroidlib
Hay un puerto official androide de Apache HttpClient se pueden encontrar en maven repository (o buscar "httpclient-android").
Lamentablemente, Android viene con un tenedor de Apache HttpClient integrado y está atorado en la versión 4.0.
- 1. Última Apache HttpClient en Android SDK
- 2. Cómo manejar la sesión en HttpClient 4.1
- 3. Apache HttpComponents HttpClient timeout
- 4. Apache HttpClient autenticación implícita
- 5. Apache HTTPClient SSLPeerUnverifiedException
- 6. Apache HttpClient en Android produciendo CertPathValidatorException (IssuerName! = SubjectName)
- 7. Apache HttpClient 4.0 no pudo esperar el socket en Android
- 8. Cómo habilitar el registro de apache commons HttpClient en Android
- 9. Apache HttpClient GET con cuerpo
- 10. Apache HttpClient HttpRequestRetryHandler nunca invocó
- 11. Apache HttpClient lanza una NoClassDefFoundError
- 12. Apache HttpClient Error interino: NoHttpResponseException
- 13. ¿Apache Commons HttpClient es compatible con GZIP?
- 14. Apache HttpClient (4.1 y más reciente): cómo hacer la autenticación básica?
- 15. Proyecto Android usando httpclient -> http.client (apache), método post/get
- 16. Apache HttpClient en Java, instream.toString = org.apache.http.conn.EofSensorInputStream
- 17. establecer nonProxyHosts en Apache HttpClient 4.1.3
- 18. Android: HTTPClient
- 19. Apache HttpClient y archivos de certificado PEM
- 20. Apache HttpClient 4.1.1 Autenticación NTLM no SPNEGO
- 21. java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient
- 22. Apache HttpClient haciendo multiparte formulario post
- 23. Uso de httpclient de Apache para https
- 24. Error SSL "Peer Not Authenticated" con HttpClient 4.1
- 25. Android HttpClient y HTTPS
- 26. Android HttpClient Cookie
- 27. notificacion expandible android 4.1
- 28. Agregar parámetro a HttpPost en httpclient de Apache
- 29. Configuración de red móvil en Android 4.1
- 30. ¿Cómo puedo usar ACTION_VOICE_SEARCH_HANDS_FREE en Android 4.1?
Si usa Maven Shade Plugin, puede moverlo todo a un paquete diferente y guardarlo. –