2015-09-01 19 views
18

Android M'de, Google Apache HTTP istemcisinin desteğini tamamen kaldırmıştır.Android M desteklemek için Eclipse'de Legacy Apache nasıl kullanılır M

Bu önizleme Apache HTTP istemci için destek kaldırır:

Bu

aynı zamanda Android M. Google Geliştirici Kaynaklardan

çökmesini pek çok uygulamalar için neden olabilir. Uygulamanız bu müşteriyi kullanıyorsa ve Android 2.3'ü (API level 9) veya üstü hedefliyorsa, bunun yerine HttpURLConnection sınıfını kullanır. Bu API daha verimli , çünkü ağ kullanımını şeffaf sıkıştırma ve yanıt önbelleğe alma ile azaltır ve güç tüketimini en aza indirir. Apache HTTP API'leri kullanarak devam etmek için, öncelikle build.gradle dosyasında aşağıdaki derleme zamanı bağımlılık beyan etmelidir:

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

Android BoringSSL kütüphaneye uzak OpenSSL dan hareket ediyor. Uygulamanızın numaralı telefonunda Android NDK'yi kullanıyorsanız, libcrypto.so ve libssl.so gibi NDK API'sinin bölümü olmayan şifreleme kitaplıklarına karşı bağlantı oluşturmayın. Bu kitaplıkları, genel API'lar değildir ve yayınlar ve aygıtlar arasında bildirimde bulunmadan değiştirilebilir veya kesilebilir. Ayrıca, kendinizi güvenlik açıklarına da maruz bırakabilirsiniz. Bunun yerine, JNI aracılığıyla Java şifreleme API'lerini aramak için yerel kodunuzu değiştirin veya seçtiğiniz bir şifreleme kitaplığına karşı statik olarak bağlantı kurun.

Ben Eclipse kullanıyorum ve Gradle yok, bunun için herhangi bir geçici çözüm vardır?

Gerçekten oldukça hızlı bir uygulamayı güncellemeniz gerekir ama şu anda

+0

Bu bir sorun olabilir, Eclipse ADT artık kullanımdan kaldırılmıştır. Android ekibi, Eclipse için bu tür değişiklikler yapmıyor. Ancak, HttpClient kütüphanesini Uygulamanıza manuel olarak ekleyebilir ve ne olduğunu görebilirsiniz. – Knossos

+0

@Knossos, yılın sonuna kadar güncellemeleri almalı, sonra artık desteklenmeyecek (en azından okuduklarımdan), bunu deneyecek, ty – Signo

+0

Bu yüzden yeni bir HttpClient kavanozuyla yükseltme saatleri geçirdim benim lib'imde (her şeyden vazgeçildiği için) ve sonra bu hatayı içine aldı. Google beni öldürüyor. –

cevap

35

Android Studio için de kullanılabilir hale Android/Sdk/platforms/android-23/optional içindedir org.apache.http.legacy.jar bulun olamaz senin bağımlılık ekleyin.

+0

Düşündüğümden çok daha kolay: P Ty çok! Sadece% 100 emin olmak için son bir soru: Uygulamamı Android 6.0'ın en son sürümünü çalıştıran bir taklitçiyle denedim ve iyi çalışıyor, bu gerçek bir cihazda uygulamanın aynı şekilde doğru şekilde çalışacağı anlamına geliyor? (Yani, org.apache.http.legacy.jar kütüphanesi kullanılarak sorun yaşanmayacak) – Signo

+1

Sizin için gerçekten garanti edemiyorum, Android studio'da kullanıyorum bile aynı şüpheye sahibim –

+0

Ty a lot :) Yarın Android M ile gerçek bir cihazda deneyeceğim böylece emin olacağım! – Signo

İlgili konular