Compilación de la biblioteca de descargas de Google API 23 Android Marshmallow
Estoy utilizando la biblioteca de descargas de Google para descargar el paquete de expansión distribuido a través del gestor de Android SDK. Construir usando Eclipse / Ant ya que no han migrado a AS / Gradle todavía – pero cualquier solución ayudaría.
En API 23 Apache HTTP desaparece. Y ya implementé una solución para obtener LVL de Google para compilar. ( Biblioteca Lvl y melcocha android )
- AndroidHttpClient Nullpointerexception llamando a android.net.http.AndroidHttpClient.isMmsRequest
- AsyncHttpclient de Loopj no establece el tiempo de espera correcto
- AndroidHttpClient versus HttpUrlConnection para API Nivel 9 y superior
- El error import org.apache.http.client no puede resolverse cuando actualizo sdk a M
- Enviando solicitud de formulario múltiple con varios parámetros?
Pero la biblioteca de descarga es una bestia sustancialmente más grande para hacer frente y no estoy seguro de que realmente quiero arreglar el código de Google – probablemente sólo escribir mis propios en su lugar si es necesario.
¿Alguien sabe de una conveniente "gota en" (-ish) biblioteca de reemplazo o solución adecuada?
~~
Compile los errores de las importaciones no disponibles en 'com.google.android.vending.expansion.downloader.impl.AndroidHttpClient'
Import org.apache.http.Header; Import org.apache.http.HttpEntity; Import org.apache.http.HttpEntityEnclosingRequest; Import org.apache.http.HttpException; Import org.apache.http.HttpHost; Import org.apache.http.HttpRequest; Import org.apache.http.HttpRequestInterceptor; Import org.apache.http.HttpResponse; Import org.apache.http.client.ClientProtocolException; Import org.apache.http.client.HttpClient; Import org.apache.http.client.ResponseHandler; Import org.apache.http.client.methods.HttpUriRequest; Import org.apache.http.client.params.HttpClientParams; Import org.apache.http.client.protocol.ClientContext; Import org.apache.http.conn.ClientConnectionManager; Import org.apache.http.conn.scheme.PlainSocketFactory; Import org.apache.http.conn.scheme.Scheme; Import org.apache.http.conn.scheme.SchemeRegistry; Import org.apache.http.conn.scheme.SocketFactory; Import org.apache.http.conn.ssl.SSLSocketFactory; Import org.apache.http.entity.AbstractHttpEntity; Import org.apache.http.entity.ByteArrayEntity; Import org.apache.http.impl.client.DefaultHttpClient; Import org.apache.http.impl.client.RequestWrapper; Import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; Import org.apache.http.params.BasicHttpParams; Import org.apache.http.params.HttpConnectionParams; Import org.apache.http.params.HttpParams; Import org.apache.http.params.HttpProtocolParams; Import org.apache.http.protocol.BasicHttpContext; Import org.apache.http.protocol.BasicHttpProcessor; Import org.apache.http.protocol.HttpContext;
- ¿Por qué android obtiene el certificado ssl incorrecto? (Dos dominios, un servidor)
- ¿Es compatible con AndroidHttpClient?
- ¿Cómo reempaquetar HttpClient 4.3.1 y eliminar las dependencias en commons-logging?
- OKhttp PUT ejemplo
- ¿Por qué esta tarea de fondo falla con una excepción fatal?
- Crear un controlador personalizado de finalización / devolución de llamada para devolver objetos después de que se completa una solicitud HTTP
- ¿Qué hacer con nunca suceder, excepciones inútiles?
- No se puede resolver el símbolo HttpEntity, HttpResponse
Bueno, un poco de github buscando y encontró una solución. Irónicamente, se menciona en stackoverflow demasiado – Simplemente no utilizar palabras clave adecuadas en mi búsqueda supongo. Así que si llegas aquí, entonces salta a la pregunta / respuesta / solución de SMarek y da +1 a la respuesta. Solución: (http://stackoverflow.com/q/32178854/735533) Biblioteca: (https://github.com/smarek/httpclient-android)
Editar:
NOTA: A partir del 26 de octubre de 2015, la biblioteca de SMarek anterior no se genera correctamente como es
Mientras tanto, resulta que hay una solución "más fácil" para los usuarios de Ant en lugar de la opción "usesLibrary org.apache.http.legacy" para los usuarios de gradle.
- Copia
SDK/platforms/android-23/optional/org.apache.http.legacy.jar
en el directorio ./libs de la aplicación - (Y añadir jar para construir la ruta de acceso de clase, etc)
-
A continuación, añada lo siguiente a proguard
-keep class org.apache.http.** { *; }
-dontwarn org.apache.http.**
-dontwarn android.net.**
NOTA: El android.net 'dontwarn' enmascarará las llamadas de OpenSSL ("android.net.http.SslCertificate"). En mi caso surge de WebKit que no estoy usando (aunque las librerías de terceros podrían)
Desafortunadamente, empujó mi aplicación sobre el límite de 65k. Nunca un momento aburrido.
- RequestFileSystem en Cordova 3.4 falla con error "Clase no encontrada"
- Android: no puedo actualizar mi listview