【问题标题】:Jar mismatch! Fix your dependencies罐子不匹配!修复你的依赖
【发布时间】:2013-04-10 00:44:29
【问题描述】:

重现步骤:

  1. 创建一个安卓项目“MyApp”
  2. 导入 ActionBarSherlock(ABS)、Directional ViewPager(DVP) 或任何其他使用 android 支持库的开源库。
  3. 将库添加到项目“MyApp”中

控制台日志:

[2013-04-17 14:27:12 - MyApp] Found 2 versions of android-support-v4.jar in the dependency list,
[2013-04-17 14:27:12 - MyApp] but not all the versions are identical (check is based on SHA-1 only at this time).
[2013-04-17 14:27:12 - MyApp] All versions of the libraries must be the same at this time.
[2013-04-17 14:27:12 - MyApp] Versions found are:
[2013-04-17 14:27:12 - MyApp] Path: C:\Users\santhosh\My_Workspace\DVP_library\libs\android-support-v4.jar
[2013-04-17 14:27:12 - MyApp]   Length: 140011
[2013-04-17 14:27:12 - MyApp]   SHA-1: fc834ac8147bc4ed0b555f90f500a57d4232c448
[2013-04-17 14:27:12 - MyApp] Path: C:\Users\santhosh\My_Workspace\abs_library\libs\android-support-v4.jar
[2013-04-17 14:27:12 - MyApp]   Length: 271754
[2013-04-17 14:27:12 - MyApp]   SHA-1: 53307dc2bd2b69fd5533458ee11885f55807de4b
[2013-04-17 14:27:12 - MyApp] Jar mismatch! Fix your dependencies

我知道我想从 libs 文件夹中删除 android-support-v4.jar 并为所有人保留一份副本。 但是,这并不能解决我的问题。

当我尝试从 MyApp 中删除 android-support-v4.jar 时,出现以下错误。

 Problems encountered while deleting resources.
 Could not delete 'C:\Users\santhosh\My_Workspace\MyApp\libs\android-support-v4.jar'.

当我尝试从 ABS 中删除 android-support-v4.jar 时,出现以下错误

 ????? cannot be resolved to a type error.

我已尝试清理项目,修复项目属性。重启eclipse,再次构建,导入并添加。我试图将 libs 文件夹中的支持 jar 从一个库复制到另一个库。删除两个库中的支持 jar 并将其添加到 MyApp 项目中。没有什么对我有用。

如果我尝试添加单个库,它工作正常。我在尝试将 2 个或更多库添加到单个项目时遇到了问题。

在 MyApp 中添加两个库时出错:

The project was not built since its build path is incomplete. 
Cannot find the class file for android.support.v4.app.FragmentActivity. 
Fix the build path then try building this project MyApp Unknown Java Problem
The type android.support.v4.app.FragmentActivity cannot be resolved. It is indirectly referenced from required .class files MyActivity.java/MyApp/src/com/santhosh/myapp    line 10 Java Problem
Jar mismatch! Fix your dependencies MyApp Unknown Android Dependency Problem

【问题讨论】:

标签: android eclipse jar


【解决方案1】:

不要在库中包含 android-support-v4,而是可以使用 build path menu > add external jar 将其作为外部 jar 添加到项目中

有时你必须清理你的项目。

【讨论】:

  • 我能够通过添加一个开源库作为外部 jar 来解决这个问题。谢谢。
【解决方案2】:

仅将库项目用于支持库

ADT 22 开始,使用 Eclipse Juno

我认为以上任何一个都不是最好的答案。我也不建议再在 Eclipse 中使用 external jar 函数(AFAIK)。

相反,对我有用的是创建一个单独的空库项目。

然后使用Android tools > Add Support Library 获取您需要或想要的最新版本。

然后从所有其他项目中删除支持库 jar

最后,对于每个需要它的项目,添加对新库项目的引用

(project properties) > Android > (Library box) > Add...

然后,您的所有项目将有一个单一的来源来使用和更新支持库。这也使 javadocs 更容易开始工作。

有关如何设置 javadocs 的信息,请参阅:

How to attach javadoc or sources to jars in libs folder?

【讨论】:

  • 它可能有效!但我认为最简单的方法就是我建议的!但您的答案仍然是正确的,正如您所建议的那样
  • 谢谢 :) 实际上,我坚信任何可行的方法。你能让 javadocs 正常工作吗?
  • 如果我有超过 3-4 个 Lib 项目并且其中至少 2 个需要“android-support”库会怎样?我也面临同样的问题。
  • 确实为我工作。它只会让事情变得更糟。现在我所有的项目都被暂时销毁了哦该死的:(
  • 只是添加,对于 Windows,如果发生错误,说明 android 支持库文件夹位于:C:\\extras\android\support\\当前正在使用,它怀疑防病毒软件有问题。您还会认为 Eclipse 正在使用该文件夹,但它不应该基于提供的答案。我所做的只是关闭文件夹。当 SDK 管理器安装下载支持库时会发生这种情况。
【解决方案3】:

从项目的 libs 文件夹中删除 android-support-v4.jar 文件。

【讨论】:

    【解决方案4】:

    Actionbarsherlock 里面有支持库。如果支持库也在您的主项目中,这可能会导致冲突。

    从项目的 libs 目录中删除 android-support-v4.jar

    同时从您的第二个库中删除 android-support-v4.jar,然后重试。

    Jar Mismatch Found 2 versions of android-support-v4.jar in the dependency list

    【讨论】:

    • 我已经尝试过您的解决方案。我也提到了我的问题。但是,谢谢你的回复。
    • @Santhosh 它对我有用。我看不出它为什么不起作用的任何原因。可能您的 C 盘是安全的,这就是您无法删除它的原因。将 sdk 移动到另一个文件夹并尝试一下。检查文件夹权限并检查管理员权限
    • 我创建了一个新的工作区并且它没有被保护。我有管理员权限。我能够删除它,但问题仍然存在。它仍然说 JAR 不匹配,如果我从它提供的任何库中删除支持 jar,则无法将其解析为类型错误。
    • 从您的项目中删除 jar。参考图书馆项目ABS。检查资源是否有任何错误。清理并构建。这应该有效。 stackoverflow.com/questions/16003396/…
    • 你说过它对你有用。您是否按照步骤重现了我提到的问题,或者您提到了您添加库的其他项目。?
    【解决方案5】:

    我同意 pjco。最好的方法是developer.android.com教程中Support Library Setup解释的官方方法。

    然后,在 Eclipse "package explorer" 中,展开您的主项目并从 android-support-v4.jar 中删除 android-support-v4.jar strong>“libs” 文件夹(如Pratik Butanisuggested)。

    这对我有用。

    【讨论】:

      【解决方案6】:
      1. 当您在应用程序中使用库项目并且两个项目都使用具有不同版本的相同 jar 时,会出现 Jar 不匹配,因此只需检查应用程序中附加的所有库项目。如果存在一些不匹配,则将其删除。

      2. 如果上述过程不起作用,则只需从构建路径中删除项目依赖项,然后再次添加库项目并构建应用程序。

      【讨论】:

        【解决方案7】:

        我认为您创建了一个新工作区并使用他的 lib 正确导入所有项目,并在 sdk 额外文件的 adb bundle 中添加外部 jar android-support-v4.jar。我认为它对你有用。希望一切顺利

        还可以使用 android 支持库,它可能会对您有所帮助并更新您的 adt 包

        【讨论】:

          【解决方案8】:

          我相信您在库和应用程序中都需要您的支持包。但是,要解决此问题,请确保您在两个位置都有相同的文件(相同的校验和)。

          只需从一个位置复制支持包文件并复制到另一个位置,然后清理+刷新您的库/项目,您就可以开始了。

          【讨论】:

          • 按照建议,我从 ABS 的 libs 文件夹中复制了支持 jar,并将其粘贴到 DVP 和我的项目的 libs 文件夹中。重新启动eclipse,清理,再次构建。现在 DVP 和 MyApp 中有错误。 “容器 'Android Dependencies' 引用了 MyApp 中不存在的库 'C:\Users\ksanthoshkumar\My_Workspace\DVP_library\bin\dvp_library.jar'”。和“无法解析到 DVP 中的类型和更多错误”
          • 您是否为您的库和应用项目使用了正确的 SDK 版本。请检查一下。
          • 是的 SDK 版本 4.2,适用于所有三个(项目和两个库 ABS 和 DVP)
          • @Santhosh 我猜你的 minsdkVersion 应该是 10
          • 最小 SDK 为 8。我推荐使用最新版本作为 targetSDK。请参阅我的问题中的编辑。
          【解决方案9】:

          在我的情况下,我的工作区中有另一个目录,与我的项目中的 jar 文件相同。我没有创建该目录或其中的任何内容。我相信它是由 Eclipse 创建的。我刚刚删除了那个目录,它运行正常。

          【讨论】:

            【解决方案10】:

            右击你的项目 -> Android Tool -> 添加支持库

            【讨论】:

              猜你喜欢
              • 2013-01-09
              • 2015-01-28
              • 2014-05-16
              • 2014-12-22
              • 2013-02-06
              • 2017-12-26
              • 1970-01-01
              • 2021-10-05
              • 1970-01-01
              相关资源
              最近更新 更多