gpt4 book ai didi

android - 使用 httpclient 4.2.2 Android

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:47 25 4
gpt4 key购买 nike

这是异常的核心:

12-12 10:37:50.090: E/AndroidRuntime(8277): Caused by: java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>

我使用的是 Apache httpclient 4.2.2。但是,Android 已决定使用其 bundle 的过时 Apache httpclient 库是更好的选择。

如何避免这种异常?

以防万一:更改 org.apache 命名空间不是一个选项,因为此异常是由闭源库抛出的。

最佳答案

However, Android has decided that using its bundled outdated Apache httpclient library is a better option.

Google 关心向后兼容性。 如您所见,HttpClient 具有不同版本的不同 API,因此如果 Google 升级 HttpClient,所有现有应用程序都会崩溃。 Google 需要维护一致的公共(public) API,以便为 Android 1.1 编写的应用程序。 x 适用于 Android 4.x 等。不幸的是,Google 选择了一个导致与较新 HttpClient 版本的公共(public) API 快速中断的 HttpClient 版本。

How can I avoid this exception?

使用 jarjar 或等效项将 HttpClient 库的副本重构为不同的包名称,然后使用它。

Changing the org.apache namespace is not an option since this exception is being thrown by a closed-source library.

然后用其他东西替换闭源库。显然,如果闭源库需要 HttpClient 4.2.2,那么该闭源库将无法在 Android 上运行,并且在 Android 上不受其开发人员的支持。即使您解决了 HttpClient 问题(例如,通过 ROM mod——见下文),这个库在与 Android 的兼容性方面也可能存在其他问题。

或者,下载 Android 源代码,将 HttpClient 版本替换为您自己的版本,构建修改后的 Android 源代码,将结果注入(inject) ROM mod,然后将 ROM mod 安装到您想要的设备上。一路上,一定要测试任何现有的应用程序,以确保它们不会因为您的更改而中断(很可能使用 HttpUrlConnection,但它们可能不会)。

关于android - 使用 httpclient 4.2.2 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13836930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com