![](/img/trans.png)
[英]How can I use Eclipse's new Xtend language in my Android project?
[英]Can I use a new version of HttpClient in my Android project?
我需要在Android項目中使用HttpClient 4.2.5(添加到類路徑中)。 問題是在執行時,Android采用在其API中注冊的默認HttpClient。 這沒有所有的類和方法,所以我有錯誤,如:
java.lang.NoSuchMethodError:org.apache.http.impl.client.DefaultHttpClient.setRedirectStrategy
如何解決此問題並使用類路徑中的版本執行並忽略嵌入式版本? 我試圖改變類路徑庫的順序 - 這不起作用。
聽起來Android正在通過其bootclasspath獲取HttpClient。 如果是這種情況,則類路徑上JAR的順序無關緊要。
如果這是“真正的Java(tm)”,你可以在啟動JVM時使用另一個bootclasspath來解決這個問題,但我不認為你可以在Android應用程序1中這樣做 。
我可以建議的最好的方法是,您可以查看HttpClient及其依賴項的源代碼,調整整個軟件包名稱,並構建新的JAR。 然后通過導入調整的包名稱修改您的應用程序代碼以使用新類。
1 - 如果他們允許應用程序指定備用bootclasspath,它將為惡意應用程序提供新的潛在攻擊向量。 我知道Android 應該在Davlik VM之外實現安全性,但是刪除VM中實現的第二道防線仍然是一個壞主意。
您可以使用HttpClientAndroidLib 。 至於現在它基於HttpClient 4.2.3,但我認為它足以滿足您的需求。 該lib的作者通過重命名原始HttpClient的所有包來繞過限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.