Facebook SDK for Android重复支持依赖项库

时间:2012-11-22 17:00:37

标签: android facebook-android-sdk android-support-library

我已经实施了新的Facebook SDK 3.0测试版。该库项目包含Android支持库v4。我也有自己的proyect支持库(虽然不同的版本)。当我将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。我在这里错过了什么吗?我的想法是使用我自己项目的支持库(以保持更新)。

3 个答案:

答案 0 :(得分:122)

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

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

我收到此错误时的操作是:

  1. 右键单击该项目。

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

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

  4. 接受下载图书馆。

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

    快乐的编码!

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

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

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