Jar Mismatch在依赖项列表中找到了2个版本的android-support-v4.jar

时间:2012-08-20 21:37:55

标签: java android jar

我正在尝试创建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

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

14 个答案:

答案 0 :(得分:176)

  

有关如何解决此问题的任何想法?

删除一个。

  

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

步骤1:撤消所有这些。如果你正在搞乱构建路径,那么在Eclipse的ADT插件的R16或更高版本上,你做错了。

步骤2:选择这两个版本的JAR中的一个,或者从SDK安装的“extras”区域中选择一个。

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

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

欢迎您在两个广告位(App FreeApp Library)中使用相同的实际JAR文件,但这只会占用额外的空间。

答案 1 :(得分:24)

  1. 从App Free中删除android-support-v4.jar
  2. 将相同的文件从App Library添加到App Free

答案 2 :(得分:12)

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

  

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

希望它可以解决您的问题,因为它解决了我的问题。

答案 3 :(得分:11)

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

  • libfacebook
  • libsherlockactionbar

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

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

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

答案 4 :(得分:8)

这是一个比删除和添加文件更优雅的解决方法!

你只需要:

  1. 右键单击项目App Free
  2. 转到" Android工具" > "添加支持库"
  3. 批准权限并让它更新库
  4. 对项目App Library重复此过程
  5. Android支持库将同步(:

答案 5 :(得分:7)

非常简单的解决方案

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

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

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

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

罐子不匹配问题现在将解决。

答案 6 :(得分:5)

只需将库中的一个项目复制到另一个项目即可。也许两者的时间戳必须相同。

答案 7 :(得分:4)

决议:

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

答案 8 :(得分:2)

检查是否有为您打开的无关项目,因为对我来说就是这种情况,似乎其中一个JAR文件与我不使用的其他项目有关,所以我刚关闭了该项目,做了一个干净的项目,我正在努力,并没有问题了!希望这有助于某人!

答案 9 :(得分:1)

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

答案 10 :(得分:1)

嗯..它对我有用:

转到

  

项目文件夹>库

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

然后

  

项目>清洁

它会起作用!

答案 11 :(得分:1)

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

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

答案 12 :(得分:0)

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

没有别的事可做,干净和享受:)。

答案 13 :(得分:0)

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