【问题标题】:Apache HttpAsyncClient throwing NoSuchMethodErrorApache HttpAsyncClient 抛出 NoSuchMethodError
【发布时间】:2012-12-02 01:42:11
【问题描述】:

执行时: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,但我还没有完全理解我要如何解决这个问题。谢谢

【问题讨论】:

    标签: java android apache httpclient


    【解决方案1】:

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

    所以可能的解决方案是:

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

    【讨论】:

    • 好的,如果我在 DefaultHttpClient 中使用 AsyncTask 是一样的吗?谢谢。
    • 当然你可以得到相同的行为,但是在其他选项存在的情况下实现整个库是不明智的:)
    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2020-02-09
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    相关资源
    最近更新 更多