我有一个Android应用程序,它调用jar lib说b.jar。 这个b.jar lib。然后调用facebook sdk lib。 当我在这种情况下编译我的应用程序时,它总是说
无法执行dex:多个dex文件定义Lcom / facebook / android / AsyncFacebookRunner $ 1; 转换为Dalvik格式失败:无法执行dex:多个dex文件定义Lcom / facebook / android / AsyncFacebookRunner $ 1;
我用了几天才使它工作,但是,我没有解决这个问题。 有谁知道如何解决这个问题?
答案 0 :(得分:4)
转到项目属性,然后转到Java构建路径 - >图书馆 - >删除Android依赖项,然后单击确定,然后运行项目
参考:https://stackoverflow.com/a/15247670/1585773
完美地为我工作。
答案 1 :(得分:3)
所有答案都是一种解决方法。它们无法解决问题的根本原因。如果你看一下你的项目结构,就会有一个FacebookSDK项目和你的项目。在这两个项目中,你都有com.facebook.android(第一个java文件是AsyncFacebookRunner)包,它包含相同的java文件。显然,多个dex文件将定义您的类文件,您将收到错误。
解决方案 - 从主项目(不是FacebookSDK)中删除com.facebook.android。
答案 2 :(得分:0)
对我而言,这是由与AddThis SDK发生冲突引起的,因为AddThis SDK包含嵌入其中的Facebook SDK的部分副本。因此,com/facebook/android/AsyncFacebookRunner
类被定义了两次。
我能够使用这些答案来解决这个问题:
Android AddThis sdk + Facebook sdk won't build in Android Studio
Android Studio - App Crashing on AddThis.jar - "Sources Not Found" Message
具体来说,从第二个答案中使用此步骤:
终端中使用的命令zip -d addthis0.0.8.jar com/facebook/*
从addthis0.0.8.jar
由于我使用Eclipse,因此我不需要在这些答案中执行任何其他步骤。