Hintergrund
Auf Android Marshmallow hat Google die Unterstützung des Apache HTTP-Clients (Link hier ) vollständig entfernt, da die Leistung im Vergleich zu den Alternativen nicht gut ist.
Dies könnte auch die Ursache dafür sein, dass so viele Apps auf Android Marshmallow abstürzen.
Das Problem
Mit Google können Sie diese API weiterhin verwenden, nur nicht als integrierte API, indem Sie diese Zeile zur Gradle-Datei hinzufügen:
useLibrary 'org.apache.http.legacy'
Also, das habe ich getan:
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
Und:
android {
compileSdkVersion 'android-MNC'
buildToolsVersion "23.0.0 rc3"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "com.example.user.androidmtest"
minSdkVersion 'MNC'
targetSdkVersion 'MNC'
versionCode 1
versionName "1.0"
}
Als ich es ausprobierte, wurde es gut kompiliert (es wurden keine Fehler angezeigt und ich konnte die Proof-of-Concept-App ausführen, da sie keinen speziellen Code enthält), aber als ich versuchte, einige der mir bekannten Klassen zu verwenden sind Teil der alten API (wie "HttpClient" -Klasse), ich sehe, dass es mir nicht erlaubt, dies zu tun.
Ich weiß, dass es nicht empfohlen wird, diese Lösung zu verwenden, aber wir müssen die App zumindest vorübergehend einsatzbereit haben, bis wir zu 100% an allen Dingen arbeiten, die sich für Android Marshmallow ändern sollten, und wir wollen keine Überraschungen in der Form von Abstürzen.
Hier ist ein Screenshot:
Die Frage
Warum kommt es vor? Habe ich es richtig benutzt?
EDIT: über dieses Problem hier berichtet: