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


130

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

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


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

Answers:


177

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

删除一个。

我一直在尝试没有成功的构建路径。

步骤1:全部撤消。如果您在R16或更高版本的Eclipse ADT插件的构建路径上弄乱了,那就错了。

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

步骤#3:在中放入正确的JAR App Library

步骤#4:从中删除一个App Free,因为它将从中提取该JAR App Library

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


1
@Necronet:都使用相同的JAR。例如,将最新的复制到每个项目中。
CommonsWare 2013年

@CommonsWare:如何知道哪个是最新的?
Mehul Joisar

2
@MehulJoisar:这取决于JAR的作者。对于android-support-v4.jar,最新的是您的SDK安装中的一个。
CommonsWare 2013年

5
@MehulJoisar:我无法回答。我通常会android-support-v4.jar从SDK中获取最新版本,并将其复制到所有库项目中(再从SDK中删除其中一个)。
CommonsWare,2013年

1
我只是遇到了这个问题,但是它似乎完全是出乎意料的,就像其他几个(更困难的)Eclipse / Android问题一样。这个答案可以解决问题,但显然不能解决问题的原因。
2014年

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

@Lee Chun Hoe您能告诉我如何在MAC OS中进入此路径。我想删除android-support-v4.jar。
Rakesh

@Rakesh在Eclipse Package Explorer中,展开项目,在libs文件夹下,删除该android-support-v4.jar文件。
李俊和

12

以上解决方案大多可以解决问题。使用这些解决方案后,问题仍然存在。然后

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

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


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文件夹中。然后,我添加libcommons了对所有其他图书馆项目的参考。清理我的工作区后,一切都变得像个魅力。


8

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

您只需要:

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

然后,Android支持库将同步(:


谢谢-这解决了我的问题。我必须添加BaseGameUtils并收到此错误:)
neowhoru 2015年

@neowhoru,没问题!很高兴分享〜!
cokeby190

1
很高兴它对@MuhammedRefaat有所帮助!(:
cokeby190

7

非常简单的解决方案

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

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

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

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

jar的不匹配问题将立即解决。



4

解析度:

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

2

检查是否有不相关的项目为您打开,因为对我来说就是这种情况,似乎其中一个JAR文件与另一个我不曾使用过的项目有关,所以我只是关闭了那个项目,做了一个干净的我正在研究的项目的构建,现在不再有问题!希望这对某人有帮助!




1

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

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


0

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

没什么可做的,清洁和享受:)


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.