2

我有一个使用Apache HTTP库的库(不是Android库)。我想在Android应用程序中使用这个库。它也需要与其他类型的框架一起使用。这是否会导致与Android中的Apache库发生任何冲突,并且有什么方法可以使它在Android中包含时使用Android的Apache库?如果不得不通过HTTP客户端来使用,那真的很不方便。Android与库冲突的HttpClient

+1

如果您使用的库没有物理地包含appache-library(例如它是jar文件),则没有问题。 Java只会检查这些类是否在构建路径中,这应该是您构建Android应用程序时的情况。 –

+0

如果没有物理包含,我的库如何使用Apache的HTTP库?我想我可能对我的问题有点模糊。我会编辑它。 – Eliezer

回答

2

这会带来这取决于你如何定义“冲突”,在Android的

与Apache库的任何冲突。

您不控制运行时类路径,并且固件始终获胜。因此,Android版本的HTTPClient将用于Android SDK中存在的所有HTTPClient类。

如果您的其他库依赖于HTTPClient的不同版本,则可能有问题。

有没有什么办法让它这样,当它被包含在Android中,将使用Android的Apache库

你别无选择:Android的课程将被使用,只要有一个重复。

+0

因此,如果在我的库中确保始终使用与Android相同版本的HTTPClient,那么在“Java”项目或“Android”项目中使用我的库时不应该有任何问题? – Eliezer

+0

@Eliezer:是的。您的挑战可能在于找到与Android版本(4.0.3b?)匹配的HTTPClient JAR。越接近,越好,因为API更改的机会越少,这会导致问题。你可能会想要一个好的测试套件,它可以在Android和传统的Java虚拟机中锻炼你的库,以确保一切按预期工作。另外,请记住,HTTPClient不再是Android中的推荐解决方案 - Google现在推荐使用旧的“HttpUrlConnection”。 – CommonsWare

+0

'HttpUrlConnection'是一个标准的java类吗?我知道这有点偏离主题,但是你会建议在Android之外使用它(特别是因为如果这是Google为Android推荐的类我想要使用它,并且我宁愿只使用一个类试图找出如何使用Android的'HttpUrlConnection'和其他地方的'HTTPClient')? – Eliezer