Android上的Apache HttpClient 4.1

时间:2010-08-26 16:08:00

标签: android apache-httpclient-4.x

有没有人试图在Android上使用更新版本的Apache HttpClient?在Android使用的HttpClient中有一个恼人的错误,我想知道是否会在尝试使用我的应用程序重新分发HttpClient 4.1时遇到问题。

5 个答案:

答案 0 :(得分:6)

我创建了一个脚本,将库存HttpClient版本转换为Android库项目。 这些包被重命名,因此不会混淆使用哪些类。

ThreadSafeClientConnManager和Scheme也可以正常工作。

看看:httpclientandroidlib

答案 1 :(得分:2)

这看起来并不是一个好主意,特别是如果在较新版本的Client中未更改包名和类名。很可能你无法预测使用哪个类(旧的或新的)。

答案 2 :(得分:2)

以防万一有兴趣 - 我用Apache HttpClient 4.01重建了我的应用程序,一切似乎都运行正常。该应用程序仅增长了100kB。

答案 3 :(得分:1)

你可以在official找到一个maven repository apache HttpClient的android端口(或者找“httpclient-android”)。

可悲的是Android内置了一个apache HttpClient的分支,并且它已经停留在4.0版本中。

答案 4 :(得分: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中使用的旧版本具有不同的构造函数。