Facebook SDK for Android在依赖项上复制支持库

我已经实施了新的Facebook SDK 3.0testing版。 库项目包含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. 

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

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

看来不同的项目使用两个单独的支持库,因此校验和是不同的。

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

当我得到这个错误时我做的是:

  1. 右键单击该项目。

  2. 将鼠标hover在Android工具上。

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

  4. 接受图书馆的下载。

这确保了两件事:a。 您可以从Google来源获取最新版本的支持库,以及b。 你所有的项目都有相同的库。

快乐的编码!

只需删除项目中的一个,将其从类path中删除,然后尝试重build项目。

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

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

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

另外:如果你使用Gradle构build系统及其依赖pipe理,甚至Maven,你不会有这样的问题,但他们需要更多的时间和知识来正确设置。