Android 9 和 Apache HTTP 的缺失

标签 android apache-httpclient-4.x

我有一个旧的 Android 应用程序,它通过 Apache HTTP 进行通信。为了让它与 Apache 9 一起工作,我添加了

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

进入 list 。据我所知,这应该有效。但事实并非如此,因为缺少类(class),我得到了一个异常(exception)。堆栈跟踪如下所示:

Stack Trace

好吧,库“应该丢失了”,但堆栈跟踪表明至少有一部分存在,只是没有 LineFormatter 类(我什至没有直接调用)。我的违规代码如下所示:

PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager(socketFactoryRegistry, new MyDNSResolver());

回顾一下:我正在过渡到 Android 9 并在 Apache HTTP 中调用一个函数。我相信我已经成功地使用了遗留的 Apache HTTP 库,但它的一些内部类似乎丢失了。这是怎么回事,我该如何解决?

最佳答案

我发现只需将 org.apache.http.legacy.jar 作为构建依赖项(而不是您正在使用的 list 指令)包括在内即可解决问题。

org.apache.http.legacy.jar

但是您真的应该迁移到新的 http 类 - 使用已弃用的类最终只会自找麻烦。新类得到更好的支持。

关于Android 9 和 Apache HTTP 的缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58649496/

相关文章:

http-post - RestEasy 客户端身份验证和带编码的 HTTP 放置

java - java中如何获取token

java - NoHttpResponseException 作为运行时异常抛出,即使是已检查的异常

testing - 模拟与 Apache HTTP 客户端的中断连接(用于测试目的)

java - fragment 上的自定义 GridView 上的 NullPointerException

android - 如何检查 Android 中的 Internet 连接是否有 wifi 连接?

java - android ping InetAddress 和 editText

android - 将 RxTextView 文本更改事件与 Retrofit 调用相结合

android - 如何在 Android 上的 Xamarin C# 中等待 OnActivityResult

asynchronous - apache http 异步客户端中 I/O 调度程序的数量