我有一个旧的 Android 应用程序,它通过 Apache HTTP 进行通信。为了让它与 Apache 9 一起工作,我添加了
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
进入 list 。据我所知,这应该有效。但事实并非如此,因为缺少类(class),我得到了一个异常(exception)。堆栈跟踪如下所示:
好吧,库“应该丢失了”,但堆栈跟踪表明至少有一部分存在,只是没有 LineFormatter 类(我什至没有直接调用)。我的违规代码如下所示:
PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager(socketFactoryRegistry, new MyDNSResolver());
回顾一下:我正在过渡到 Android 9 并在 Apache HTTP 中调用一个函数。我相信我已经成功地使用了遗留的 Apache HTTP 库,但它的一些内部类似乎丢失了。这是怎么回事,我该如何解决?
最佳答案
我发现只需将 org.apache.http.legacy.jar 作为构建依赖项(而不是您正在使用的 list 指令)包括在内即可解决问题。
但是您真的应该迁移到新的 http 类 - 使用已弃用的类最终只会自找麻烦。新类得到更好的支持。
关于Android 9 和 Apache HTTP 的缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58649496/