如何包含依赖于同一个库的库?

时间:2014-02-21 09:45:44

标签: android android-library

我的项目取决于两个库,一个是ActionBarSherlock,另一个是Facebook SDK

这两个库项目都依赖于android-support-library

现在的问题是,如果我在两个库项目中包含这个库,我会收到此构建错误

Android Dex: [MyApp] Unable to execute DX
Android Dex: [MyApp] com.android.dex.DexException: Multiple dex files define Landroid/support/v4/view/PagerAdapter;

如何设法让两个库依赖于同一个库?

5 个答案:

答案 0 :(得分:1)

当您的应用中有两个不同版本的jar文件时,通常会显示此错误。只需确保在两个库中都包含相同的jar,并且jar只会在APK中包含一次。

答案 1 :(得分:1)

要解决此问题,解决方案是您必须在所有库和主项目中具有相同的支持库,您需要选择每个项目并添加支持库,如下所示

右键单击项目 Android工具 添加支持库

重新完成所有项目!!

答案 2 :(得分:0)

android support library lib中加入ActionBarSherlock,然后将ActionBarSherlock库包含在Facebook库中,最后将Facebook库添加到您的库中project.

最后:清理项目

答案 3 :(得分:0)

1. Right click on the Project Name
2.  Select Build Path -> Configure Build Path
3.   In Java Build Path, go to the tab Order and Export

4.  Unchecked your .jar library

希望它能帮到你.... :)

答案 4 :(得分:0)

我有同样的问题。我这样解决了 - 1-转到项目的libs目录。将有来自谷歌的android支持库的jar文件。删除这个罐子。 2-从Facebook SDK的lib目录中复制android支持库jar。 3-将此jar粘贴到项目的libs目录中(在步骤1中删除了Google提供的jar的位置)。 4-现在右键单击这个罐子。选择“构建路径”。选择“添加到构建路径”

你完成了。 现在你有了相同的JAR文件,它在所有地方的Facebook SDK中提供。

注意:以相反的方式复制,即将Google提供的支持jar复制到Facebook SDK中对我来说不起作用。它无法获得LocalBroadcastManager。我不知道为什么。