如何使用添加的 jar 中可用的类覆盖 Android Api 类?

Abh*_*nav 4 java eclipse apache android

场景:一个android项目说,ProjAndroid指的是一个java项目say(HelperProj)。

在 HelperProj 中,我尝试通过实例化其管理器来使用 httpConnection Pooling。

PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();

我遇到了Apache 示例,并且能够作为独立程序实现而没有任何故障。

但是对于 android,首先它给出了错误,NoClassDefFoundError因为当我将httpclient-4.3.1.jarhttpcore-4.3.jar添加到 android 项目时已解决。但现在我得到另一个错误

Caused by: java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE

我的结论:- 上面的字段应该在 httpcore-4.3.jar 中可用,因为当我将代码作为独立运行时没有出现任何错误。所以,我搜索并发现 android 已经提供了BasicLineFormatter 类该类不可用,并且可能在运行时这个类被引用。

如果上述错误,请纠正我。

帮助:- 所以有人请指导我如何解决这个资源冲突并使用 jar 中可用的类而不是 android api 中可用的类。

Com*_*are 5

因此,请有人指导我如何解决此资源冲突并使用 jar 中可用的类,而不是 android api 中可用的类。

这不是直接可能的。您无法控制类路径,因此固件加载的类始终优先。

欢迎您尝试使用实用程序,例如jarjar将第三方代码移动到单独的包中。

或者,您可以查看其他人是否已经为您完成了此操作,例如 htpclientandroid

或者,欢迎您为您的问题提出不同的解决方案,而不涉及替换 Android 提供的类。