3

I have a project I'm working on in Android Studio that currently uses the Facebook SDK for retrieving some information about a Facebook user. It works pretty well.

I also need to implement AddThis, however when I try to compile this project with both SDKs referenced, I get the error:

Android Dex: [<removed>] com.android.dx.util.DexException: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;

Inside the AddThis .jar, as expected, com.facebook.android.AsyncFacebookRunner exists. Obviously it also exists in the Facebook SDK module. There is functionality that I need in AddThis that doesn't exist in Facebook, and vice versa.

Does anyone know a way to handle this type of situation?

4

1 回答 1

3

我能够解决这个问题:

由于 Facebook SDK 是一个模块而不是 jar,因此我从 Facebook SDK 模块中引用了 AddThis0.8.8.jar,并直接从我的项目中删除了对它的引用。

这样做之后,Facebook SDK 中的 com.facebook.android.* 和 AddThis jar 中的副本 ( com.facebook.android.* ) 之间仍然存在冲突。因此,我从 Facebook SDK中删除了 com.facebook.android 包及其内容,然后将 com.addthis 包含在(类路径中,我想?Android Studio 建议在我在代码中键入“ATButton”时包含它。我说“哎呀,谢谢 JetBrains!”)。

我现在可以使用 AddThis 以及 Facebook SDK 没有任何冲突。

我希望这个过程可以以某种方式帮助那里的人。

[编辑]

这仍然存在问题。我恢复了 Facebook SDK,并从 AddThis jar 中删除了 Facebook 的东西。不是 100% 仍在工作,但将所有 Facebook 内容保留在 Facebook 模块中可能是一个更好的主意。如果您有更好的解决方案,请发布答案。

于 2013-08-15T23:03:47.247 回答