我在 Android Studio 中有一个项目,目前使用 Facebook SDK 来检索有关 Facebook 用户的一些信息。它工作得很好。
我还需要实现 AddThis,但是当我尝试使用引用的两个 SDK 编译该项目时,出现错误:
Android Dex: [<removed>] com.android.dx.util.DexException: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;
在 AddThis .jar 中,正如预期的那样,存在 com.facebook.android.AsyncFacebookRunner。显然它也存在于 Facebook SDK 模块中。 AddThis 中有我需要的功能,但 Facebook 中没有,反之亦然。
有谁知道处理这种情况的方法吗?
最佳答案
我能够解决这个问题:
由于 Facebook SDK 是一个模块而不是 jar,我从 Facebook SDK 模块中引用了 AddThis0.8.8.jar,并直接从我的项目中删除了对它的引用。
这样做之后,Facebook SDK 中的 com.facebook.android.* 与 AddThis jar 中的副本 ( com.facebook.android.* ) 之间仍然存在冲突。因此,我删除了 com.facebook.android 包及其内容 - 来自 Facebook SDK - 然后将 com.addthis 包含在(类路径中,我认为?Android Studio 建议在我键入时包含它代码中的“ATButton”。我说“哎呀,谢谢 JetBrains!”)。
我现在可以使用 AddThis 和 Facebook SDK 而不会发生任何冲突。
我希望这个过程能以某种方式帮助其他人。
[编辑]
这仍然存在问题。我还原了 Facebook SDK,并从 AddThis jar 中删除了 Facebook 内容。并非 100% 仍在工作,但将所有 Facebook 内容保留在 Facebook 模块中可能是一个更好的主意。如果您有更好的解决方案,请务必发布答案。
关于Android AddThis sdk + Facebook sdk 不会在 Android Studio 中构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18262647/