java - Apache HttpAsyncClient 抛出 NoSuchMethodError

标签 java android apache httpclient

执行时:Future<HttpResponse> future = myHttpAsyncClient.execute(post, null); 我明白了:

12-02 02:22:03.567: W/dalvikvm(6392): threadid=13: thread exiting with uncaught exception (group=0x40b5c930)

...

Caused by: java.lang.NoSuchMethodError: org.apache.http.client.utils.URIUtils.extractHost
12-02 02:22:03.606: E/AndroidRuntime(6392):     at org.apache.http.impl.nio.client.AbstractHttpAsyncClient.determineTarget(AbstractHttpAsyncClient.java:594)

...

我发现了这个问题:Apache HttpAsyncClient - NoSuchMethodError - URIUtils.extractHost但我还没有正确理解我必须做什么来解决这个问题。谢谢

最佳答案

不幸的是,Android 内部 httpcore 和外部 httpasyncclient 库存在不兼容问题。 Android 依赖于旧版本的 httpcore。即使您使用较新版本的应用程序导出应用程序,由于相同的包,Android 仍然使用内部应用程序。

所以可能的解决方案是:

  • 使用 Maven Shade 插件将 httpasyncclient 的所有类及其依赖项重新定位到另一个包结构,并将其与您的应用程序一起导出。
  • 使用等效库,例如 android-async-http

关于java - Apache HttpAsyncClient 抛出 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13665635/

相关文章:

java - 为什么我的 JUnit 错误收集器没有报告错误?

java - 多个 url 模式的部署问题?

android - 传递给 dlfree 的地址无效

php - 无法找到 timezonedb.so

apache - 不区分大小写的位置

python - Apache 停止 Imagemagick Convert

java - 如何在Java中有效地计算CSV文件的行数

java - 将一个类似java套接字的程序放在云服务中

java - 如何在 java 应用程序和 adobe air 应用程序之间传递消息?

android - Android <activity-alias> 中的用户 ID 是什么?