jar子不匹配! 修复你的依赖关系

重现步骤:

  1. 创build一个android项目“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 

仅为支持库使用库项目

ADT 22开始 ,使用Eclipse Juno

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

相反,我的工作是创build一个单独的空图书馆项目。

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

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

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

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

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

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

如何将javadoc或源文件附加到libs文件夹中的jar文件中?

不要在库中包含android-support-v4,而是可以使用构buildpath菜单将外部jar添加到项目中>添加外部jar

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

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

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

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

另外从你的第二个库中删除android-support-v4.jar ,然后再试一次。

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

我同意pjco。 最好的方法是在developer.android.com教程的支持库设置中说明的官方方法。

然后,在Eclipse的“包资源pipe理器”中 ,展开你的主项目并从“libs”文件夹中删除android-support-v4.jar (就像Pratik Butani所 build议的那样 )。

这对我有效。

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

  2. 如果上述过程不起作用,那么只要从构buildpath中删除项目依赖项,然后再添加库项目并构build应用程序。

我想你创build一个新的工作区,并正确导入所有项目与他的lib,并添加外部jar android-support-v4.jar在adb捆绑在sdk额外的文件。 我认为它为你工作。 希望一切顺利

也可以使用android支持库,它可能会帮助你,也更新你的adt包

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

只需从一个位置复制support-package文件,然后复制另一个位置,然后清理+刷新你的库/项目,你应该很好。

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

右键点击你的项目 – > Android工具 – >添加支持库