Ich habe eine einfache Klasse in Android Studio geschrieben:
package com.mysite.myapp;
import org.apache.http.client.HttpClient;
public class Whatever {
public void headBangingAgainstTheWallExample () {
HttpClient client = new DefaultHttpClient();
}
}
und daraus erhalte ich folgenden Fehler beim Kompilieren:
Cannot resolve symbol HttpClient
Ist nicht HttpClient
im Android Studio SDK enthalten? Auch wenn dies nicht der Fall ist, habe ich es wie folgt zu meinem Gradle-Build hinzugefügt:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
Mit oder ohne die letzte Kompilierungszeile ist der Fehler der gleiche. Was vermisse ich?
AndroidHttpClient
wenn Sie können. HttpClient-Stubs sind in der Tat im Android-Jar enthalten, sodass es nicht erforderlich sein sollte, explizit darauf zu verweisen. Beachten Sie, dass die Android-Version von httpclient wahrscheinlich 4.1.1 ist. Der Versuch, eine neuere Version zu verwenden, führt normalerweise zu Problemen (lesen Sie: funktioniert nicht, da der Firmware-Klassenladeprogramm immer gewinnt).Antworten:
HttpClient
wird in sdk 23 nicht mehr unterstützt. Sie müssenURLConnection
sdk 22 (compile 'com.android.support:appcompat-v7:22.2.0'
) verwenden oder ein Downgrade durchführen.Wenn Sie SDK 23 benötigen, fügen Sie dies Ihrem Gradle hinzu:
Sie können auch versuchen, HttpClient jar direkt in Ihr Projekt herunterzuladen und einzuschließen, oder stattdessen OkHttp verwenden
quelle
android { useLibrary 'org.apache.http.legacy' }
[wenn du dies hinzufügst] [1] 'org.apache.http' android-studio hat noch tipps: 'Symbol kann nicht aufgelöst werden' [2] dieses make android-studio (mit sdk23) kann bauen. Obwohl es Tipps gibt (Symbol kann nicht aufgelöst werden) [3] Wenn Sie jar hinzufügen, kann es keine Tipps erstellen, aber !!! kann nicht ausgeführt werden, da es zwei Kopien 'org.apache.http' hatVolley
Beachten Sie für alle Benutzer der Bibliothek, dass dieser Gradle-Zeilenzusatz in die Gradle-Datei für die Bibliothek und nicht in Ihre App aufgenommen werden sollte. Funktioniert perfekt! Danke vielmals!HttpClient wurde in API Level 22 veraltet und in API Level 23 entfernt. Sie können es weiterhin in API Level 23 und höher verwenden, wenn Sie müssen. Es ist jedoch am besten, zu unterstützten Methoden zu wechseln, um HTTP zu verarbeiten. Wenn Sie also mit 23 kompilieren, fügen Sie dies in Ihr build.gradle ein:
quelle
android { useLibrary 'org.apache.http.legacy' }
[wenn du dies hinzufügst] [1] 'org.apache.http' android-studio hat noch tipps: 'Symbol kann nicht aufgelöst werden' [2] dieses make android-studio (mit sdk23) kann bauen. Obwohl es Tipps gibt (Symbol kann nicht aufgelöst werden) [3] Wenn Sie jar hinzufügen, kann es keine Tipps erstellen, aber !!! kann nicht ausgeführt werden, da es zwei Kopien 'org.apache.http' hatDie Antwort von TejaDroid im folgenden Link hat mir geholfen. Org.apache.http.HttpResponse kann in Android Studio nicht importiert werden
quelle
So verwenden Sie Apache HTTP für SDK Level 23:
Top level build.gradle - /build.gradle
Benachrichtigung von Android Studio über Gradle Update:
Modulspezifisches build.gradle - /app/build.gradle
quelle
Versuchen Sie, dass dies für mich funktioniert hat. Fügen Sie diese Abhängigkeit zu Ihrer build.gradle-Datei hinzu
quelle
1- Laden Sie die Apache-JAR-Dateien herunter (ab dieser Antwort). 4.5.zip-Datei von:
https://hc.apache.org/downloads.cgi?Preferred=http%3A%2F%2Fapache.arvixe.com%2F
2- Öffnen Sie die Zip-Kopie und kopieren Sie die JAR-Dateien in Ihren libs-Ordner. Sie können es finden, wenn Sie zum Anfang Ihres Projekts gehen, wo "Android" steht. Wenn Sie darauf klicken, finden Sie eine Liste. Damit,
Dann stellen Sie Gläser dort.
3- In build.gradle (Modul: App) hinzufügen
im
4- Fügen Sie in der Java-Klasse die folgenden Importe hinzu:
quelle
HttpClient wird in SDK 23 nicht mehr unterstützt. Die Version Android 6.0 (API Level 23) entfernt die Unterstützung für den Apache HTTP-Client. Du musst benutzen
und fügen Sie in Ihrer Abhängigkeit auch das folgende Code-Snippet hinzu:
// http endgültige Lösung für den Webdienst (einschließlich Hochladen von Dateien)
Es hilft Ihnen auch bei der Verwendung von Use MultipartEntity für das Hochladen von Dateien .
quelle
In API 22 sind sie veraltet und in API 23 wurden sie vollständig entfernt. Eine einfache Problemumgehung, wenn Sie nicht alle ausgefallenen Dinge aus den neuen Ergänzungen benötigen, besteht darin, einfach die .jar-Dateien von Apache zu verwenden, die vor API 22 integriert wurden als getrennte .jar-Dateien:
quelle
Wenn Sie eine Klasse importieren möchten, wie:
Sie können die folgende Zeile in build.gradle einfügen (Gradle-Abhängigkeiten)
quelle
Sie können dies einfach zu Gradle-Abhängigkeiten hinzufügen:
quelle
HttpGet
. Dafür habe ichcompile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
Die Version 6.0 (API Level 23) entfernt die Unterstützung für den Apache HTTP-Client. Daher können Sie diese Bibliothek nicht direkt in API 23 verwenden. Es gibt jedoch eine Möglichkeit, sie zu verwenden. Fügen Sie useLibrary 'org.apache.http.legacy' wie folgt in Ihre build.gradle-Datei ein.
Wenn dies nicht funktioniert, können Sie den folgenden Hack anwenden:
- Kopieren Sie org.apache.http.legacy.jar, das sich in / platform / android-23 / optionalem Pfad Ihres Android SDK-Verzeichnisses befindet, in den Ordner app / libs Ihres Projekts.
- Fügen Sie nun Kompilierungsdateien ('libs / org.apache.http.legacy.jar') im Abschnitt dependencies {} der Datei build.gradle hinzu.
quelle
ApacheHttp Client wird in v23 sdk entfernt. Sie können HttpURLConnection oder einen Http-Client eines Drittanbieters wie OkHttp verwenden.
ref:
https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client
quelle
HttpUrlConnection
wird anstelle von HttpClientVerwenden Sie einfach Folgendes: -
quelle
HttpClient wird in SDK 23 und 23+ nicht unterstützt.
Wenn Sie in SDK 23 verwenden müssen, fügen Sie Ihrem Gradle den folgenden Code hinzu:
Es funktioniert für mich. Hoffe nützlich für dich.
quelle
Wenn Sie SDK 23 benötigen, fügen Sie dies Ihrem Gradle hinzu:
quelle
Sie müssen nur eine Zeile hinzufügen
zum Beispiel in build.gradle (Modul: App)
quelle
Welches API-Ziel haben Sie in Ihrem Projekt?
AndroidHttpClient
ist nur für API Level 8 <. und bitte schauen Sie mal rein hierViel Spaß mit deinem Code :)
quelle
Wie bereits erwähnt,
org.apache.http.client.HttpClient
wird nicht mehr unterstützt in:SDK (API-Ebene) # 23.
Du musst benutzen
java.net.HttpURLConnection
.Wenn Sie Ihren Code (und das Leben) machen wollen leichter bei der Verwendung von
HttpURLConnection
, hier ist eineWrapper
dieser Klasse , die Sie tun einfache Operationen mit läßtGET
,POST
undPUT
unter VerwendungJSON
, wie zum Beispiel eines tunHTTP PUT
.Fühlen Sie sich frei, es zu benutzen.
quelle
Fügen Sie diese beiden Zeilen unter Abhängigkeiten hinzu
dann
unter dem android
quelle
Fügen Sie Ihre JAR-Datei in den Ordner "libs" Ihres Projekts ein. Fügen Sie dann in gradle diese Zeile in Ihr build.gradle ein (Modul: App)
quelle
Fehler: (30, 0) Gradle DSL-Methode nicht gefunden: 'classpath ()' Mögliche Ursachen:
quelle
Für Android API 28 und höher in Manifest.xml im Anwendungs-Tag
quelle
Ich denke, je nachdem, welche Android Studio-Version Sie haben, ist es wichtig, dass Sie auch Ihr Android Studio aktualisieren. Ich war auch frustriert, wenn ich allen Ratschlägen folgte, aber kein Glück, bis ich meine Android-Version von 1.3 auf 1.5 aktualisieren musste, verschwanden die Fehler wie folgt Magie.
quelle