【问题标题】:Android Conflicting HttpClient With LibraryAndroid与库冲突的HttpClient
【发布时间】:2012-10-22 21:17:35
【问题描述】:

我有一个使用 Apache HTTP 库的库(不是 Android 库)。我想在 Android 应用程序中使用这个库。它还需要与其他类型的框架一起使用。这是否会导致与 Android 中的 Apache 库发生任何冲突,有没有办法让它在包含在 Android 中时使用 Android 的 Apache 库?必须传入HTTP客户端才能使用,真的很不方便。

【问题讨论】:

  • 如果您使用的库在物理上不包含 appache-library(例如它的 jar 文件),则没有问题。 Java 只会检查类是否在您的构建路径中,这在您构建 Android 应用程序时应该是这种情况。
  • 如果我的库没有物理包含,它还能如何使用 Apache 的 HTTP 库?我想我的问题可能有点含糊。我会编辑它。

标签: java android apache-httpclient-4.x android-library apache-httpcomponents


【解决方案1】:

这是否会导致与 Android 中的 Apache 库发生冲突

这取决于你如何定义“冲突”。

您不控制运行时类路径,固件总是胜出。因此,对于 Android SDK 中存在的所有 HTTPClient 类,将使用 Android 版本的 HTTPClient。

如果您的其他库依赖于不同版本的 HTTPClient,您可能会遇到麻烦。

有什么方法可以让它在包含在 Android 中时使用 Android 的 Apache 库

您别无选择:将使用 Android 的类,只要有重复项。

【讨论】:

  • 因此,如果在我的库中我确保始终使用与 Android 相同版本的 HTTPClient,那么在“Java”项目或“Android”项目中使用我的库应该不会有任何问题?
  • @Eliezer:是的。您的挑战可能是找到与 Android 版本(4.0.3b?)匹配的 HTTPClient JAR。距离越近越好,因为 API 更改给您带来问题的可能性越小。您可能需要一个好的测试套件,它可以在 Android 和传统 Java VM 中运行您的库,以确保一切都按预期工作。另外,请记住 HTTPClient 不再是 Android 中推荐的解决方案——Google 现在推荐旧的 HttpUrlConnection
  • HttpUrlConnection 是标准的 java 类,对吧?我知道这有点离题,但您是否建议在 Android 之外也使用它(特别是因为如果这是 Google 推荐的 Android 类,我想使用它,我宁愿只使用一个类试图弄清楚如何将HttpUrlConnection 用于Android,HTTPClient 用于其他任何地方)?
  • @Eliezer: "HttpUrlConnection 是一个标准的 java 类,对吧?" - 是的。 “你会建议在 Android 之外也使用它吗?” - 这样做 AFAIK 并没有错。
猜你喜欢
  • 1970-01-01
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
  • 2021-02-24
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
相关资源
最近更新 更多