我有一个我正在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中不存在,反之亦然。
有谁知道处理这类情况的方法?
答案 0 :(得分:3)
我能够解决这个问题:
由于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模块中。如果你有更好的解决方案,请发表答案。