Tengo una clase simple escrita en Android Studio:
package com.mysite.myapp;
import org.apache.http.client.HttpClient;
public class Whatever {
public void headBangingAgainstTheWallExample () {
HttpClient client = new DefaultHttpClient();
}
}
y de esto obtengo el siguiente error de tiempo de compilación:
Cannot resolve symbol HttpClient
¿No está HttpClient
incluido en el SDK de Android Studio? Incluso si no es así, lo agregué a mi compilación de Gradle de esta manera:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
Con o sin la última línea de compilación, el error es el mismo. ¿Qué me estoy perdiendo?
AndroidHttpClient
si puedes. Los stubs HttpClient están contenidos dentro del jar de Android, por lo que no debería ser necesario hacer referencia a ellos explícitamente. Tenga en cuenta que la versión de Android de httpclient es probablemente 4.1.1. Intentar usar una versión más nueva además de eso suele ser un problema (léase: no funciona, porque el cargador de clases de firmware siempre gana).Respuestas:
HttpClient
ya no se admite en sdk 23. Debe usarURLConnection
o degradar a sdk 22 (compile 'com.android.support:appcompat-v7:22.2.0'
)Si necesita SDK 23, agregue esto a su gradle:
También puede intentar descargar e incluir el jar HttpClient directamente en su proyecto o usar OkHttp en su lugar
fuente
android { useLibrary 'org.apache.http.legacy' }
[cuando agrega esto] [1] 'org.apache.http' android-studio todavía tiene consejos: 'No se puede resolver el símbolo' [2] esto hace que android-studio (con sdk23) pueda construir. aunque hay sugerencias (No se puede resolver el símbolo) [3] si agrega jar, no contiene sugerencias, puede compilarse, pero !!! no se puede ejecutar, porque tiene dos copias 'org.apache.http'Volley
biblioteca, tenga en cuenta que esta adición de línea de gradle debe ir al archivo de gradle para la biblioteca y no a su aplicación. ¡Funciona perfectamente! ¡Gracias una tonelada!HttpClient quedó en desuso en el nivel 22 de API y se eliminó en el nivel 23. Todavía puede usarlo en el nivel 23 de API en adelante si es necesario, sin embargo, es mejor pasar a los métodos compatibles para manejar HTTP. Entonces, si está compilando con 23, agregue esto en su build.gradle:
fuente
android { useLibrary 'org.apache.http.legacy' }
[cuando agrega esto] [1] 'org.apache.http' android-studio todavía tiene consejos: 'No se puede resolver el símbolo' [2] esto hace que android-studio (con sdk23) pueda construir. aunque hay sugerencias (No se puede resolver el símbolo) [3] si agrega jar, no contiene sugerencias, puede compilarse, pero !!! no se puede ejecutar, porque tiene dos copias 'org.apache.http'La respuesta de TejaDroid en el siguiente enlace me ayudó. No se puede importar org.apache.http.HttpResponse en Android Studio
fuente
Para usar Apache HTTP para SDK Nivel 23:
Nivel superior build.gradle - /build.gradle
Notificación del estudio de Android sobre la actualización de Gradle:
Módulo específico build.gradle - /app/build.gradle
fuente
Intente esto funcionó para mí Agregue esta dependencia a su archivo build.gradle
fuente
1- descargue los archivos jar de Apache (a partir de esta respuesta) 4.5.zip file desde:
https://hc.apache.org/downloads.cgi?Preferred=http%3A%2F%2Fapache.arvixe.com%2F
2- abre el zip copia los archivos jar en tu carpeta libs. Puede encontrarlo si va a la parte superior de su proyecto donde dice "Android", encontrará una lista cuando haga clic en él. Entonces,
Luego pon frascos allí.
3- En build.gradle (Módulo: aplicación) agregar
en
4- En la clase java agregue estas importaciones:
fuente
HttpClient ya no es compatible con sdk 23. La versión Android 6.0 (API Nivel 23) elimina la compatibilidad con el cliente Apache HTTP. Tienes que usar
y también agregue el fragmento de código a continuación en su dependencia:
// solución final http para servicio web (incluida la carga de archivos)
También lo ayudará mientras usa Usar MultipartEntity para cargar archivos .
fuente
en API 22 quedan obsoletos y en API 23 los eliminaron por completo, una solución simple si no necesita todas las cosas elegantes de las nuevas incorporaciones es simplemente usar los archivos .jar de apache que se integraron antes de API 22, pero como archivos .jar separados:
fuente
Si quieres importar alguna clase como:
Puede agregar la siguiente línea en build.gradle (dependencias de Gradle)
fuente
Simplemente puede agregar esto a las dependencias de Gradle:
fuente
HttpGet
. Para eso usécompile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
La versión Android 6.0 (API Nivel 23) elimina la compatibilidad con el cliente Apache HTTP. Por lo tanto, no puede usar esta biblioteca directamente en la API 23. Pero hay una manera de usarla. Agregue useLibrary 'org.apache.http.legacy' en su archivo build.gradle como se muestra a continuación:
Si esto no funciona, puede aplicar el siguiente truco:
- Copie org.apache.http.legacy.jar que se encuentra en / plataformas / android-23 / ruta opcional de su directorio Android SDK a la carpeta app / libs de su proyecto.
- Ahora agregue archivos de compilación ('libs / org.apache.http.legacy.jar') dentro de la sección de dependencias {} del archivo build.gradle.
fuente
ApacheHttp Client se elimina en v23 sdk. Puede usar HttpURLConnection o un cliente Http de terceros como OkHttp.
ref:
https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client
fuente
HttpUrlConnection
recomienda su uso en lugar de HttpClientSimplemente use esto: -
fuente
HttpClient no es compatible con SDK 23 y 23+.
Si necesita usar el SDK 23, agregue el código siguiente a su gradle:
Me está funcionando. Espero sea útil para ti.
fuente
Si necesita SDK 23, agregue esto a su gradle:
fuente
Tienes que agregar solo una línea
en build.gradle (Módulo: aplicación), por ejemplo
fuente
¿Qué objetivo de API tienes dentro de tu proyecto?
AndroidHttpClient
es solo para API Nivel 8 <. y por favor mira aquídisfruta tu código :)
fuente
Como se mencionó anteriormente,
org.apache.http.client.HttpClient
ya no se admite en:SDK (nivel API) # 23.
Tienes que usar
java.net.HttpURLConnection
.Si desea hacer que el código (y la vida) más fácil cuando se utiliza
HttpURLConnection
, aquí es unaWrapper
de esta clase que le permita realizar operaciones sencillas conGET
,POST
yPUT
utilizandoJSON
, como por ejemplo, hacer unaHTTP PUT
.Sientase libre de usarlo.
fuente
Agregue estas dos líneas bajo dependencias
entonces
bajo el androide
fuente
Pegue su archivo .jar en la "carpeta libs" en su proyecto. Luego, en gradle, agregue esta línea en su build.gradle (Módulo: aplicación)
fuente
Error: (30, 0) Método DSL Gradle no encontrado: 'classpath ()' Causas posibles:
fuente
Para Android API 28 y superior en Manifest.xml dentro de la etiqueta de la aplicación
fuente
Creo que dependiendo de la versión de Android Studio que tenga, es importante que actualice también su estudio de Android, también me frustraba seguir los consejos de todos, pero no tuve suerte, hasta que tuve que actualizar mi versión de Android de 1.3 a 1.5, los errores desaparecieron como magia.
fuente