罐子不匹配!修复您的依赖项

时间:2013-04-17 09:51:45

标签: android eclipse jar

重现的步骤:

  1. 创建一个Android项目“MyApp”
  2. 导入ActionBarSherlock(ABS),Directional ViewPager(DVP)或任何其他使用Android支持库的开源库。
  3. 将库添加到项目“MyApp”
  4. 控制台日志:

    [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
    

10 个答案:

答案 0 :(得分:54)

不要将android-support-v4包含在库中,而是可以使用构建路径菜单>将其作为外部jar添加到项目中。添加外部jar

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

答案 1 :(得分:49)

仅为支持库使用库项目

截至 ADT 22 ,使用Eclipse Juno

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

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

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

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

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

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

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

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

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

答案 2 :(得分:16)

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

答案 3 :(得分:7)

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

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

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

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

答案 4 :(得分:5)

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

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

这对我有用。

答案 5 :(得分:4)

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

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

答案 6 :(得分:1)

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

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

答案 7 :(得分:1)

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

并且还使用android支持lib它可能会帮助你并且还更新你的adt包

答案 8 :(得分:0)

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

答案 9 :(得分:0)

右键点击您的项目 - &gt; Android工具 - &gt;添加支持库