34

我已经实现了新的 Facebook SDK 3.0 beta。该库项目包含 Android 支持库 v4。我自己的项目也有支持库(虽然是不同的版本)。当我将 Facebook SDK 添加为库时,控制台上出现下一个错误:

Jar mismatch! Fix your dependencies
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.

我试图排除libs构建路径上的文件夹,但错误仍然存​​在。

我必须在两个地方都放同一个 .jar。我在这里错过了什么吗?这个想法是使用我自己项目的支持库(以保持更新)。

4

3 回答 3

122

似乎不同的项目正在使用两个单独的支持库,因此校验和是不同的。

您必须对 Facebook SDK 项目和您正在构建的应用程序重复此操作。

当我收到此错误时,我会做的是:

  1. 右键单击该项目。

  2. 将鼠标悬停在 Android 工具上。

  3. 单击“添加支持库...”

  4. 接受库的下载。

这确保了两件事:您可以从 Google 来源获得最新版本的支持库,并且 b。您在所有项目中都有完全相同的库。

快乐编码!

于 2012-11-22T17:06:51.843 回答
1

通过顶部答案中提到的菜单安装相同版本的支持库是一个很好的解决方案。

虽然这有时对我不起作用(我认为这与我的 Workspace 文件夹与 Dropbox 同步,所以 Eclipse 有时不会覆盖文件)所以我使用的方法是从中央链接支持库地方。

您的 SDK 文件夹中有这些 JAR 文件(例如 Windows 上的 C:\Program Files (x86)\Android\android-sdk\extras\android\),这些 JAR 文件会在您运行 SDK 管理器时进行更新,因此您可以参考Facebook(或任何其他库)和您的项目中的一个。因为最后,来自 JAR 文件的代码被打包到您的classes.dex. 您甚至不需要libs文件夹中的支持库。

另外:如果您使用Gradle构建系统及其依赖管理甚至Maven,您将不会遇到此类问题,但它们需要更多时间和知识才能正确设置。

于 2014-02-27T14:15:51.477 回答
1

只需删除项目中的那个,将其从类路径中删除,然后尝试重建您的项目。

于 2012-11-22T17:07:38.663 回答