J'ai une classe simple écrite dans Android Studio:
package com.mysite.myapp;
import org.apache.http.client.HttpClient;
public class Whatever {
public void headBangingAgainstTheWallExample () {
HttpClient client = new DefaultHttpClient();
}
}
et j'obtiens l'erreur de temps de compilation suivante:
Cannot resolve symbol HttpClient
N'est pas HttpClient
inclus dans le SDK Android Studio? Même si ce n'est pas le cas, je l'ai ajouté à ma version Gradle comme ceci:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
Avec ou sans la dernière ligne de compilation, l'erreur est la même. Qu'est-ce que je rate?
AndroidHttpClient
si vous le pouvez. Les talons HttpClient sont en effet contenus dans le pot Android, il ne devrait donc pas être nécessaire de s'y référer explicitement. Notez que la version Android de httpclient est probablement 4.1.1. Essayer d'utiliser une version plus récente en plus pose généralement des problèmes (lire: ne fonctionne pas, car le chargeur de classe du firmware gagne toujours).Réponses:
HttpClient
n'est plus pris en charge dans sdk 23. Vous devez utiliserURLConnection
ou rétrograder vers sdk 22 (compile 'com.android.support:appcompat-v7:22.2.0'
)Si vous avez besoin de SDK 23, ajoutez ceci à votre gradle:
Vous pouvez également essayer de télécharger et d'inclure le pot HttpClient directement dans votre projet ou d'utiliser OkHttp à la place
la source
android { useLibrary 'org.apache.http.legacy' }
[quand vous ajoutez ceci] [1] 'org.apache.http' android-studio a toujours des astuces: 'Impossible de résoudre le symbole' [2] ceci permet à android-studio (avec sdk23) de construire. bien qu'il y ait des astuces (ne peut pas résoudre le symbole) [3] si vous ajoutez un pot, il n'y a pas d'astuces, vous pouvez le construire, mais !!! ne peut pas fonctionner, car il a deux copies 'org.apache.http'Volley
bibliothèque, notez que cet ajout de ligne Gradle devrait aller dans le fichier Gradle de la bibliothèque, et non dans votre application. Marche parfaitement! Merci beaucoup!HttpClient a été déconseillé dans l'API de niveau 22 et supprimé dans l'API de niveau 23. Vous pouvez toujours l'utiliser dans l'API de niveau 23 et supérieur si vous le devez, mais il est préférable de passer aux méthodes prises en charge pour gérer HTTP. Donc, si vous compilez avec 23, ajoutez ceci dans votre build.gradle:
la source
android { useLibrary 'org.apache.http.legacy' }
[quand vous ajoutez ceci] [1] 'org.apache.http' android-studio a toujours des astuces: 'Impossible de résoudre le symbole' [2] ceci permet à android-studio (avec sdk23) de construire. bien qu'il y ait des astuces (ne peut pas résoudre le symbole) [3] si vous ajoutez un pot, il n'y a pas d'astuces, vous pouvez le construire, mais !!! ne peut pas s'exécuter, car il a deux copies 'org.apache.http'La réponse de TejaDroid dans le lien ci-dessous m'a aidé. Impossible d'importer org.apache.http.HttpResponse dans Android Studio
la source
Pour utiliser Apache HTTP pour SDK niveau 23:
Build.gradle de niveau supérieur - /build.gradle
Notification du studio Android sur la mise à jour de Gradle:
Build.gradle spécifique au module - /app/build.gradle
la source
Essayez cela a fonctionné pour moi Ajoutez cette dépendance à votre fichier build.gradle
la source
1- télécharger les fichiers jar Apache (à partir de cette réponse) fichier 4.5.zip depuis:
https://hc.apache.org/downloads.cgi?Preferred=http%3A%2F%2Fapache.arvixe.com%2F
2- ouvrez le zip copiez les fichiers jar dans votre dossier libs. Vous pouvez le trouver si vous allez en haut de votre projet où il est dit "Android", vous trouverez une liste lorsque vous cliquez dessus. Donc,
, Ensuite, mettez des pots là-bas.
3- Dans build.gradle (Module: app) ajoutez
dans
4- Dans la classe java ajoutez ces importations:
la source
HttpClient n'est plus pris en charge dans le SDK 23. La version Android 6.0 (API niveau 23) supprime la prise en charge du client HTTP Apache. Vous devez utiliser
et ajoutez également l'extrait de code ci-dessous dans votre dépendance:
// http solution finale pour le service Web (y compris le téléchargement de fichiers)
Il vous aidera également lors de l'utilisation de l' option Utiliser plusieurs entités pour le téléchargement de fichiers .
la source
dans l'API 22, ils deviennent obsolètes et dans l'API 23, ils les ont complètement supprimés, une solution de contournement simple si vous n'avez pas besoin de toutes les nouveautés des nouveaux ajouts consiste à simplement utiliser les fichiers .jar d'Apache qui étaient intégrés avant l'API 22, mais en tant que fichiers .jar séparés:
la source
Si vous voulez importer une classe comme:
Vous pouvez ajouter la ligne suivante dans le build.gradle (dépendances Gradle)
la source
Vous pouvez simplement ajouter ceci aux dépendances Gradle:
la source
HttpGet
. Pour cela, j'ai utilisécompile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
La version Android 6.0 (API niveau 23) supprime la prise en charge du client HTTP Apache. Par conséquent, vous ne pouvez pas utiliser cette bibliothèque directement dans l'API 23. Mais il existe un moyen de l'utiliser. Ajoutez useLibrary 'org.apache.http.legacy' dans votre fichier build.gradle comme ci-dessous-
Si cela ne fonctionne pas, vous pouvez appliquer le hack-
- Copiez org.apache.http.legacy.jar qui se trouve dans / platformes / android-23 / chemin facultatif de votre répertoire SDK Android dans le dossier app / libs de votre projet.
- Maintenant, ajoutez des fichiers de compilation ('libs / org.apache.http.legacy.jar') dans la section des dépendances {} du fichier build.gradle.
la source
ApacheHttp Client est supprimé dans v23 sdk. Vous pouvez utiliser HttpURLConnection ou un client Http tiers comme OkHttp.
réf:
https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client
la source
HttpUrlConnection
est en fait encouragée à la place de HttpClientUtilisez simplement ceci: -
la source
HttpClient n'est pas pris en charge dans sdk 23 et 23+.
Si vous devez utiliser dans sdk 23, ajoutez le code ci-dessous à votre gradle:
Cela fonctionne pour moi. J'espère utile pour vous.
la source
Si vous avez besoin de SDK 23, ajoutez ceci à votre gradle:
la source
Vous devez ajouter une seule ligne
dans build.gradle (Module: app), par exemple
la source
Quelle cible API avez-vous dans votre projet?
AndroidHttpClient
est uniquement pour l'API niveau 8 <. et s'il vous plaît jetez un oeil iciprofitez de votre code :)
la source
Comme mentionné précédemment,
org.apache.http.client.HttpClient
n'est plus pris en charge dans:SDK (niveau API) # 23.
Vous devez utiliser
java.net.HttpURLConnection
.Si vous voulez rendre votre code (et votre vie) plus facile à utiliser
HttpURLConnection
, voici unWrapper
de cette classe qui vous permettra de faire des opérations simples avecGET
,POST
et d'PUT
utiliserJSON
, comme par exemple, faire unHTTP PUT
.Sentez-vous libre de l'utiliser.
la source
Ajoutez ces deux lignes sous les dépendances
puis
sous l'androïde
la source
Collez votre fichier .jar dans le "dossier libs" de votre projet. Ensuite, dans gradle, ajoutez cette ligne dans votre build.gradle (Module: app)
la source
Erreur: (30, 0) Méthode DSL Gradle introuvable: 'classpath ()' Causes possibles:
la source
Pour Android API 28 et supérieur dans Manifest.xml à l'intérieur de la balise d'application
la source
Je pense qu'en fonction de la version d'Android Studio que vous avez, il est important que vous mettiez également à jour votre studio Android, je devenais frustré aussi en suivant les conseils de tout le monde mais pas de chance, jusqu'à ce que je doive mettre à jour ma version Android de 1.3 à 1.5, les erreurs ont disparu comme la magie.
la source