71

重现步骤:

  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
4

10 回答 10

54

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

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

于 2013-04-30T13:15:57.800 回答
48

仅将库项目用于支持库

ADT 22开始,使用 Eclipse Juno

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

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

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

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

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

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

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

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

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

于 2013-08-04T01:44:53.623 回答
16

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

于 2013-04-17T12:09:02.997 回答
7

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

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

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

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

于 2013-04-17T09:53:50.353 回答
5

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

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

这对我有用。

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

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

于 2014-06-11T09:40:49.603 回答
1

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

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

于 2013-04-17T09:54:02.113 回答
1

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

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

于 2014-09-23T05:44:10.543 回答
0

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

于 2015-11-20T12:16:48.240 回答
-1

右键单击您的项目 -> Android 工具 -> 添加支持库

于 2016-06-01T19:12:19.120 回答