Έχω μια απλή κλάση γραμμένη στο Android Studio:
package com.mysite.myapp;
import org.apache.http.client.HttpClient;
public class Whatever {
public void headBangingAgainstTheWallExample () {
HttpClient client = new DefaultHttpClient();
}
}
και από αυτή λαμβάνω το ακόλουθο σφάλμα κατά τη διάρκεια της μεταγλώττισης:
Δεν μπορεί να επιλύσει το σύμβολο HttpClient
Το HttpClient
δεν περιλαμβάνεται στο Android Studio SDK; Ακόμα και αν δεν είναι, το πρόσθεσα στο Gradle build μου ως εξής:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
Με ή χωρίς την τελευταία γραμμή μεταγλώττισης, το σφάλμα είναι το ίδιο. Τι μου λείπει;
Το HttpClient
δεν υποστηρίζεται πλέον στο sdk 23. Πρέπει να χρησιμοποιήσετε το URLConnection
ή να υποβαθμίσετε το sdk 22 (compile 'com.android.support:appcompat-v7:22.2.0'
)
Αν χρειάζεστε το sdk 23, προσθέστε αυτό στο gradle σας:
android {
useLibrary 'org.apache.http.legacy'
}
Μπορείτε επίσης να προσπαθήσετε να κατεβάσετε και να συμπεριλάβετε το HttpClient jar απευθείας στο έργο σας ή να χρησιμοποιήσετε το OkHttp αντί αυτού.
Ο πελάτης ApacheHttp έχει αφαιρεθεί στο v23 sdk. Μπορείτε να χρησιμοποιήσετε το HttpURLConnection ή τον πελάτη Http τρίτου μέρους όπως το OkHttp.
ref : https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client
Ποιον στόχο API έχετε στο έργο σας; Το AndroidHttpClient
είναι μόνο για το επίπεδο API 8 <.
και παρακαλώ ρίξτε μια ματιά στο εδώ
απολαύστε τον κώδικά σας:)