2015-09-01 4 views
18

Auf Android M hat Google die Unterstützung von Apache HTTP Client vollständig entfernt. Verwendung von Legacy Apache in Eclipse zur Unterstützung von Android M

Dies könnte auch die Ursache sein für so viele Apps auf Android M. Absturz

Aus den Google Dev Ressourcen:

Diese Vorschau entfernt Unterstützung für das Apache HTTP-Client. Wenn Ihre App diesen Client verwendet und auf Android 2.3 (API-Level 9) oder höher abzielt, verwenden Sie stattdessen die HttpURLConnection-Klasse . Diese API ist effizienter , weil sie die Netzwerknutzung durch transparente Komprimierung und Response-Caching reduziert und den Stromverbrauch minimiert. Um weiterhin mit die Apache HTTP-APIs, müssen Sie zunächst erklären, die folgende Kompilierung-Abhängigkeit in Ihrer build.gradle Datei:

android { useLibrary 'org.apache.http.legacy' } 

Android bewegt sich weg von OpenSSL auf die BoringSSL Bibliothek. Wenn Sie das Android NDK in Ihrer App verwenden, verknüpfen Sie nicht mit kryptografischen Bibliotheken, die kein -Teil der NDK-API sind, wie libcrypto.so und libssl.so. Diese -Bibliotheken sind keine öffentlichen APIs und können ohne Ankündigung über Releases und Geräte hinweg geändert werden. Darüber hinaus können Sie sich Sicherheitslücken aussetzen. Ändern Sie stattdessen Ihren systemeigenen Code, um die Java-Kryptographie-APIs über JNI aufzurufen oder statisch mit einer Kryptographiebibliothek Ihrer Wahl zu verknüpfen, die ist.

Ich verwende Eclipse und ich habe nicht Gradle, gibt es eine Abhilfe für dieses?

Ich brauche wirklich eine App ziemlich schnell zu aktualisieren, aber ich kann nicht Portierung auf Android Studio jetzt

+0

Das könnte ein Problem sein, Eclipse ADT ist jetzt veraltet. Das Android-Team wird keine Änderungen für Eclipse vornehmen. Sie können die HttpClient-Bibliothek jedoch manuell zu Ihrer App hinzufügen und sehen, was passiert. – Knossos

+0

@Knossos sollte es die Updates bis zum Ende des Jahres erhalten, dann wird es nicht mehr unterstützt (zumindest von dem, was ich gelesen habe), werde versuchen, – Signo

+0

Also verbrachte ich Stunden Upgrade über ein neues HttpClient-Jar fallen gelassen in meiner lib (da alles veraltet war), und dann lief in diesen Fehler. Google bringt mich um. –

Antwort

35

org.apache.http.legacy.jar finden, die in Android/Sdk/platforms/android-23/optional ist, fügen Sie es Ihrer Abhängigkeit.

+0

Viel einfacher als ich dachte: P Ty viel! Eine letzte Frage, nur um 100% sicher zu sein: Ich habe meine App mit einem Emulator mit der neuesten Version von Android 6.0 versucht und es funktioniert gut, das bedeutet, dass auf einem echten Gerät die App genauso läuft oder? (Ich meine, es wird kein Problem mit der Bibliothek org.apache.http.legacy.jar haben) – Signo

+1

Ich kann es wirklich nicht für Sie garantieren, ich habe denselben Zweifel, obwohl ich es auf Android-Studio –

+0

Ty a verwende Los :) Morgen werde ich es auf einem echten Gerät mit Android M versuchen, also werde ich mir sicher sein! – Signo

Verwandte Themen