2010-08-26 73 views
5

有沒有人試圖在Android上使用更新版本的Apache HttpClient? Android中使用的HttpClient中存在一個煩人的錯誤,我想知道是否會遇到嘗試使用我的應用程序重新分發HttpClient 4.1的問題。Android上的Apache HttpClient 4.1

回答

2

這看起來不是個好主意,特別是如果在新版本的客戶端中包和類名稱沒有改變。很可能你無法預測使用哪個類(舊的或新的)。

+0

如果你使用Maven Shade插件,你可以將它全部移動到不同的包中並保存使用它。 – 2011-02-21 04:08:12

2

爲了防止任何人感興趣 - 我用Apache HttpClient 4.01重建了我的應用程序,一切似乎都正常。該應用程序只增長了100kB。

+0

您能否介紹一下如何針對HTTPClient 4.x而不是內置版本構建的分步說明? – Ognyan 2011-07-14 19:45:41

+0

Mine已經增長了250kB(Apache HttpClient 4.2.1),最新版本的httpclientandroidlib從2012年7月開始 – Twilite 2012-11-08 14:06:55

+0

Ogre_BGR:你有沒有找到任何解決方案?我想重新打包使用HttpClient 4.3.1:http://stackoverflow.com/questions/21134237/how-to-repackage-httpclient-4-3-1-and-remove-dependencies-on- commons-logging – Stuck 2014-01-15 10:15:34

0

我剛剛運行4.1,直到我開始使用ThreadSafeClientConnManager和Scheme,它產生了一些令人討厭的運行時錯誤。

ERROR/dalvikvm(1077): Could not find method org.apache.http.conn.scheme.Scheme.<init>, referenced from method com.example.MyActivity.download 
WARN/dalvikvm(1077): VFY: unable to resolve direct method 3290: Lorg/apache/http/conn/scheme/Scheme;.<init> (Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V 
WARN/dalvikvm(1077): VFY: rejecting opcode 0x70 at 0x0035 

我懷疑在Android API中使用了舊的Scheme,它具有不同的構造函數。

6

我創建了一個腳本來將股票HttpClient版本轉換爲Android庫項目。 軟件包已重新命名,以便不會混淆使用哪些類。

另外Thre​​adSafeClientConnManager和Scheme工作得很好。

請看:httpclientandroidlib

+0

非常感謝你! – dan 2012-09-20 13:53:51

+0

dirkboye:如何自行重新包裝? http://stackoverflow.com/questions/21134237/how-to-repackage-httpclient-4-3-1-and-remove-dependencies-on-commons-logging或者你可以更新lib來使用HttpClient 4.3.1? – Stuck 2014-01-15 10:13:34

1

有阿帕奇的HttpClient的official的Android端口,你可以在maven repository找到(或尋找 「HttpClient的-機器人」)。

不幸的是,Android自帶了一個內置的Apache HttpClient的分支,它被困在版本4.0中。

相關問題