【问题标题】:duplicate v4 support library重复的 v4 支持库
【发布时间】:2014-07-07 11:47:44
【问题描述】:

我的 sdk 文件夹有两个 android-support-v4.jar 文件: /sdk/extras/android/support/v7/appcompat/libs/android-support-v4.jar /sdk/extras/android/support/v4/android-support-v4.jar

为了保持清洁,我想删除其中一个重复的库。您认为移除哪个最安全?为什么?

注意:如果此信息有帮助 - 我之前使用的是 ADT 包(我认为它有 Eclipse Juno),现在我使用的是最新的 Eclipse Luna(从 eclipse.org 下载)最新的 ADT 插件(从https://dl-ssl.google.com/android/eclipse 安装)和使用sdk manager 下载的最新支持库。

【问题讨论】:

  • “为了保持整洁,我想删除其中一个重复的库”——这些都不是你的。下次您从 SDK 管理器更新 Android 支持库时,它们将被简单地放回原处。我建议不要管它们,除非你遇到了一些特定的问题。
  • 为什么要删除这些库?它们不是重复的,它们分别是 API Level 4 和 API Level 7 的支持库
  • @cokeby190 你确定android-support-v4.jar 不是重复的吗?它们的大小完全相同。
  • @CommonsWare 您是否认为 Eclipse/project 会选择从 v4 文件夹而不是从 v7 文件夹中获取 v4 jar?我只是想了解是否会使用 v4 文件夹中的 v4 jar,因为 v4 jar 无论如何都存在于 v7 文件夹中。
  • 即使它们相同,但您根本不应该修改 SDK 中的任何文件,这将破坏您可能在支持库上构建的未来项目。无需清理 SDK 文件夹中的任何内容。

标签: android eclipse android-support-library


【解决方案1】:

不要删除它。 V7 包含支持库并添加了附加功能(例如 ActionBar)。整个文件夹将被添加到使用 Eclipse 向导创建的任何需要这些功能的项目中,因此其中需要有 android-support-v4.jar

【讨论】:

  • 好的,我不删除 v7 中的 v4。但是有什么理由保留其他 v4?
  • 是的。其他不需要 V7 额外功能的应用程序将仅使用独立的 V4 jar。
  • 但独立的 v4 jar 也存在于 v7 文件夹中。那么你认为这样的项目会从 v4 文件夹而不是 v7 文件夹中获取 v4 jar 吗?
  • 不,他们不会。确实是重复的,但这就是 SDK 的设计方式。并且你不应该在不使用 SDK 管理器的情况下修改 SDK 内容:你会破坏它。
  • 视情况而定,有时新项目需要 V4(例如具有 DrawerLayout 的项目)。如果发生“冲突”,您可以在日志中看到此消息:WARNING: Found both android-support-v4 and android-support-v7 in the dependency list. Because v7 includes v4, using only v7. 因此您可以确认 Android 正确处理构建;)
【解决方案2】:

您认为移除哪个最安全?为什么?

  • /sdk/extras/android/support/v4/android-support-v4.jar

v4 支持库

此库设计用于 Android 1.6(API 级别 4)及更高版本。与其他库相比,它包含最大的 API 集,包括对应用程序组件、用户界面功能、可访问性、数据处理、网络连接和编程实用程序的支持。这样您就可以使您的应用程序 backword 兼容。

v7 库

有几个库设计用于 Android 2.1(API 级别 7)及更高版本。这些库提供特定的功能集,并且可以相互独立地包含在您的应用程序中。

v7 appcompat 库

这个库增加了对 Action Bar 用户界面设计模式的支持。

注意:
This library depends on the v4 Support Library. If you are using Ant or Eclipse, make sure you include the v4 Support Library as part of this library's classpath.

所以是的,如果你想使用 v7,你需要两个 jars。

以下 SO 帖子说明了相同的 difference-between-android-support-v7-appcompat-and-android-support-v4

阅读更多关于Support Library Features的信息。

更新:

为了避免混淆,让我们详细说明这一点-

这意味着 v4 文件夹中的 v4 jar 永远不会真正成为 无论我设置什么 min sdk,我创建的任何新项目都使用它? 即始终只使用 v7 文件夹中的 v4 jar?

  • RIGHT v7 包含 v4 支持库,因此无需再次添加它 如果您查看 v7 支持库的 libs 文件夹,您会看到库中已经引用了 v4 jar。

【讨论】:

  • 这让我想知道 v4 文件夹中的 v4 jar 究竟是什么用途,如果它永远不会被使用。
  • @faizal - 如果您查看支持库所在的 SDK,您会看到 v7 包含 v4 jar 文件,因此当您导入 v7 时,您也拥有 v4。不要同时包含两者。是的,你的想法是有道理的。
  • @faizal - 所以如果你使用的是 v7,那么就使用它。也更新了答案。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 2015-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多