【问题标题】:Jar Mismatch Found 2 versions of android-support-v4.jar in the dependency listJar Mismatch 在依赖列表中找到 2 个版本的 android-support-v4.jar
【发布时间】:2012-08-16 06:00:05
【问题描述】:

我正在尝试创建 2 个版本的 Android 应用(免费/付费)。我有一个 Android 库,其中包含两者共有的文件。我创建了一个新的 Android 项目并尝试使用该库,但出现以下错误:

Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
    Length: 349252
    SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
    Length: 337562
    SHA-1: 27c24d26e4c5d57976e6926367985548678e913c

关于如何解决这个问题的任何想法?我一直在玩构建路径,但没有成功。

【问题讨论】:

  • 我找到了一个非常简单的解决方案,可以在这种情况下使用,请在下面查看我的答案

标签: java android jar


【解决方案1】:

关于如何解决这个问题的任何想法?

删除一个。

我一直在玩构建路径,但没有成功。

第 1 步:撤消所有操作。如果您弄乱了构建路径,在 R16 或更高版本的 Eclipse 的 ADT 插件上,您做错了。

第 2 步:选择这两个 JAR 版本之一,或从 SDK 安装的“附加”区域中选择一个。

第 3 步:将正确的 JAR 放入 App Library。

第 4 步:从 App Free 中删除一个,因为它会从 App Library 中提取该 JAR。

欢迎您在两个位置(App Free 和 App Library)使用相同的实际 JAR 文件,尽管这会无缘无故地占用额外空间。

【讨论】:

  • @Necronet:都使用相同的 JAR。例如,将最新的复制到每个项目中。
  • @CommonsWare:如何知道哪个是最新的?
  • @MehulJoisar:这取决于 JAR 的作者。对于android-support-v4.jar,最新的是您的SDK 安装中的那个。
  • @MehulJoisar:我无法回答。我通常从 SDK 中获取最新的android-support-v4.jar 并将其复制到所有库项目中(加上从 SDK 中删除一个)。
  • 我刚刚遇到了这个问题,但它似乎完全出乎意料,就像其他几个(更困难的)Eclipse/Android 问题一样。这个答案解决了效果,但显然不是原因。
【解决方案2】:
  1. 从 App Free 中删除 android-support-v4.jar
  2. 将相同文件从 App Library 添加到 App Free

【讨论】:

  • @Lee Chun Hoe 你能告诉我如何在 MAC OS 中进入这条路径吗?我想删除android-support-v4.jar。
  • @Rakesh 在 Eclipse Package Explorer 中,展开您的项目,在 libs 文件夹下,删除该 android-support-v4.jar 文件。
【解决方案3】:

只需将库从其中一个项目复制到另一个项目。也许两者的时间戳需要相同。

【讨论】:

    【解决方案4】:

    在库和项目中添加外部 jar 时使用相同的 jar

    【讨论】:

      【解决方案5】:

      在某些情况下,您有多个库项目在其libs 和构建路径中具有android-support-v4.jar,并且您的项目对它们都有依赖关系。例如,就我而言,我的工作区中有以下库项目,

      • libfacebook
      • libsherlockactionbar

      这两个项目都是独立的,我的project.properties 如下所示,

      # Project target.
      target=android-17
      android.library.reference.1=../libfacebook
      android.library.reference.2=../libsherlockactionbar
      

      当我构建我的项目时,我遇到了一个 jar 不匹配问题,即对同一文件的两个副本的重复引用。我为解决这个问题所做的事情有点诡计。我创建了一个名为libcommons 的新库项目作为我工作区中所有其他库 项目的父项目,包括libfacebook 和libsherlockactionbar。然后我从所有其他项目中删除了支持库,并在 libcommons 的 libs 文件夹中只保留了一份副本。然后我添加了libcommons 作为对我所有other 库项目的引用。清理完我的工作区后,一切都像魅力一样。

      【讨论】:

        【解决方案6】:

        分辨率:

        1. 右键单击“免费”项目 > Android 工具 > 添加支持库。
        2. 在“付费”项目上做同样的事情。
        3. 清理所有项目

        【讨论】:

          【解决方案7】:

          以上解决方案主要解决问题。使用这些解决方案后,问题仍然存在。那么

          转到项目文件夹-> libs->并删除“android-support-v4.jar”

          希望它能解决你的问题,因为它解决了我的问题。

          【讨论】:

            【解决方案8】:

            检查是否有不相关的项目为您打开,因为对我来说就是这种情况,似乎其中一个 JAR 文件与我没有使用的不同项目相关,所以我关闭了该项目,对我正在处理的项目进行了干净的构建,并且不再有问题了!希望这对某人有帮助!

            【讨论】:

              【解决方案9】:

              这比删除和添加文件更优雅!

              你只需要:

              1. 右键项目App Free
              2. 转到“Android 工具”>“添加支持库”
              3. 批准权限并让它更新库
              4. 对项目应用程序库重复此过程

              Android 支持库随后将同步(:

              【讨论】:

              • 谢谢 - 这解决了我的问题。我不得不添加 BaseGameUtils 并得到这个错误:)
              • @neowhoru,没问题!很高兴分享!~
              • 很高兴它帮助了@MuhammedRefaat! (:
              【解决方案10】:

              好吧..它对我有用:

              前往

              项目文件夹 > 库

              然后,删除“android-support-v4.jar”

              然后

              项目>清理

              它会起作用的!

              【讨论】:

                【解决方案11】:

                您只需要在每个项目上使用完全相同的 android-support-v4.jar 校验和。 为此,您可以在所有冲突的项目/库中复制/粘贴其中一个。

                无事可做,清洁和享受:)

                【讨论】:

                  【解决方案12】:

                  可能是您同时打开 2 个项目(均使用 android-support-v4.jar)。 I close 1 project and every thing ok

                  【讨论】:

                    【解决方案13】:

                    非常简单的解决方案

                    一个非常简单的解决方案适用于我的案例,只需将相同的 (android-support-v4.jar) jar 文件复制到所有项目。不会再有冲突。

                    1 从任意一个项目的libs文件夹中复制jar文件android-support-v4.jar。

                    2 从已经存在的第二个项目的 libs 文件夹中删除 jar 文件 android-support-v4.jar。

                    3 将第一个项目新复制的jar文件粘贴到第二个项目的libs文件夹中。

                    jar 不匹配问题现在将得到解决。

                    【讨论】:

                      【解决方案14】:

                      我刚刚遇到了这个问题,但我没有删除冲突的 android-support-v4.jar,而是将其重命名为 android-support-v4_PROJECT.jar,即消除了冲突。

                      如果您想知道如何在 Eclipse 中重命名文件,只需突出显示该文件并按 F2。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2013-10-28
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多