java - 使用 HttpClientBuilder 时无法解析静态字段...

标签 java android httpclient

我试图用这行代码创建一个 httpClient 实例:

HttpClient httpClient = HttpClientBuilder.create().build();

编译没问题,但是当代码执行时,我得到了这些错误

D/dalvikvm(21590): DexOpt: couldn't find static field Lorg/apache/http/impl/DefaultConnectionReuseStrategy;.INSTANCE
W/dalvikvm(21590): VFY: unable to resolve static field 5520 (INSTANCE) in Lorg/apache/http/impl/DefaultConnectionReuseStrategy;
D/dalvikvm(21590): VFY: replacing opcode 0x62 at 0x0109
D/dalvikvm(21590): DexOpt: couldn't find static field Lorg/apache/http/impl/client/DefaultConnectionKeepAliveStrategy;.INSTANCE
W/dalvikvm(21590): VFY: unable to resolve static field 5720 (INSTANCE) in Lorg/apache/http/impl/client/DefaultConnectionKeepAliveStrategy;
D/dalvikvm(21590): VFY: replacing opcode 0x62 at 0x0111
D/dalvikvm(21590): DexOpt: couldn't find static field Lorg/apache/http/impl/client/DefaultUserTokenHandler;.INSTANCE
W/dalvikvm(21590): VFY: unable to resolve static field 5758 (INSTANCE) in Lorg/apache/http/impl/client/DefaultUserTokenHandler;
D/dalvikvm(21590): VFY: replacing opcode 0x62 at 0x012f
D/dalvikvm(21590): DexOpt: couldn't find static field Lorg/apache/http/impl/NoConnectionReuseStrategy;.INSTANCE
W/dalvikvm(21590): VFY: unable to resolve static field 5538 (INSTANCE) in Lorg/apache/http/impl/NoConnectionReuseStrategy;
D/dalvikvm(21590): VFY: replacing opcode 0x62 at 0x01b4
D/dalvikvm(21590): DexOpt: couldn't find static field Lorg/apache/http/impl/DefaultConnectionReuseStrategy;.INSTANCE
W/dalvikvm(21590): VFY: unable to resolve static field 5520 (INSTANCE) in Lorg/apache/http/impl/DefaultConnectionReuseStrategy;
D/dalvikvm(21590): VFY: replacing opcode 0x62 at 0x01b8
I/dalvikvm(21590): Could not find method org.apache.http.client.protocol.RequestDefaultHeaders.<init>, referenced from method org.apache.http.impl.client.HttpClientBuilder.build
W/dalvikvm(21590): VFY: unable to resolve direct method 15073: Lorg/apache/http/client/protocol/RequestDefaultHeaders;.<init> (Ljava/util/Collection;)V
D/dalvikvm(21590): VFY: replacing opcode 0x70 at 0x01f0
D/dalvikvm(21590): DexOpt: couldn't find static field Lorg/apache/http/impl/client/DefaultHttpRequestRetryHandler;.INSTANCE
W/dalvikvm(21590): VFY: unable to resolve static field 5721 (INSTANCE) in Lorg/apache/http/impl/client/DefaultHttpRequestRetryHandler;
D/dalvikvm(21590): VFY: replacing opcode 0x62 at 0x02db
D/dalvikvm(21590): DexOpt: unable to opt direct call 0x49b4 at 0x212 in Lorg/apache/http/impl/client/HttpClientBuilder;.build
I/dalvikvm(21590): Could not find method org.apache.http.conn.routing.HttpRoute.getLocalSocketAddress, referenced from method org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect
W/dalvikvm(21590): VFY: unable to resolve virtual method 15468: Lorg/apache/http/conn/routing/HttpRoute;.getLocalSocketAddress ()Ljava/net/InetSocketAddress;
D/dalvikvm(21590): VFY: replacing opcode 0x6e at 0x0020
D/dalvikvm(21590): DexOpt: couldn't find static field Lorg/apache/http/message/BasicLineFormatter;.INSTANCE
W/dalvikvm(21590): VFY: unable to resolve static field 6374 (INSTANCE) in Lorg/apache/http/message/BasicLineFormatter;
D/dalvikvm(21590): VFY: replacing opcode 0x62 at 0x0008
W/dalvikvm(21590): Exception Ljava/lang/NoSuchFieldError; thrown while initializing Lorg/apache/http/impl/io/DefaultHttpRequestWriterFactory;
W/dalvikvm(21590): Exception Ljava/lang/NoSuchFieldError; thrown while initializing Lorg/apache/http/impl/conn/ManagedHttpClientConnectionFactory;
I/JPTFB   (21590): WebView Console: ERROR -  
#

我已经包含了所有库: httpclient-4.3.3.jar httpcore-4.3.2.jar httpmime-4.3.3.jar commons-logging-1.1.3.jar

如有任何帮助或建议,我们将不胜感激。

最佳答案

当我尝试在 Android 项目中使用 Apache HTTP 库的桌面 Java 版本时,我遇到了同样的问题。对我来说,解决方案是简单地求助于 Android 版本的库(可在 Google Code project site 获取)。确保随后删除旧的导入并将其替换为库中的版本。

关于java - 使用 HttpClientBuilder 时无法解析静态字段...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23148204/

相关文章:

java - 当提供文件内容的字节流时定义文件体

java - 使用 Spring WS 将故障从皂体移至皂头

JavaFx 在方法完成后卡住

java - 如何知道gradle进程已经结束?

android - Android 中的外部 SD 卡(外部存储器)?

httpclient - kerberos 委托(delegate)场景下的 ASP 双跳请求

java - 货币格式问题

android - 从重定向的 URL 中检索位图

java - 在 android studio 中找不到 LatLng 导入

java - 设置不带 "="的 HttpClient POST 请求正文