首页 文章

无法执行dex:多个dex文件定义Lcom / facebook / android / AsyncFacebookRunner $ 1;

提问于
浏览
5

我有一个Android应用程序,它调用jar lib说b.jar . 这个b.jar lib . 然后调用facebook sdk lib . 当我在这种情况下编译我的应用程序时,它总是说

Unable to execute dex: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1; Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;

我用了几天才使它工作,但是,我没有解决这个问题 . 有谁知道如何解决这个问题?

3 回答

  • 4

    转到项目属性,然后转到Java构建路径 - >库 - >删除Android依赖项,然后单击确定,然后运行项目

    参考自:https://stackoverflow.com/a/15247670/1585773

    为我工作完美 .

  • 0

    所有答案都是一个解决方法 . 它们无法解决问题的根本原因 . 如果你看一下你的项目结构,就会有一个FacebookSDK项目和你的项目 . 在这两个项目中,你都有com.facebook.android(第一个java文件是AsyncFacebookRunner)包,它包含相同的java文件 . 显然,多个dex文件将定义您的类文件,您将收到错误 .

    解决方案 - 从主项目(而不是FacebookSDK)中删除com.facebook.android .

  • 3

    对我来说,这是由与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中删除Facebook文件

    由于我使用Eclipse,因此我不需要在这些答案中执行任何其他步骤 .

相关问题