5

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

无法执行dex:多个dex文件定义了Lcom/facebook/android/AsyncFacebookRunner$1;转换为 Dalvik 格式失败:无法执行 dex:多个 dex 文件定义 Lcom/facebook/android/AsyncFacebookRunner$1;

我用了几天的时间让它工作,但是,我没有解决这个问题。有谁知道如何解决这个问题?

4

3 回答 3

4

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

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

非常适合我。

于 2013-08-05T20:03:41.150 回答
3

所有答案都可以解决。他们没有解决问题的根本原因。如果您查看您的项目结构,就会发现有一个 FacebookSDK 项目和您的项目。在这两个项目中,您都有 com.facebook.android(第一个 java 文件是 AsyncFacebookRunner)包,其中包含相同的 java 文件。显然多个 dex 文件会定义你的类文件,你会得到错误。

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

于 2014-04-30T10:54:48.283 回答
0

对我来说,这是由于与 AddThis SDK 的冲突造成的,因为 AddThis SDK 包含嵌入其中的 Facebook SDK 的部分副本。所以这个com/facebook/android/AsyncFacebookRunner类被定义了两次。

我能够使用这些答案解决这个问题:

Android AddThis sdk + Facebook sdk 不会在 Android Studio 中构建

Android Studio - AddThis.jar 上的应用程序崩溃 - “未找到源”消息

具体来说,通过使用第二个答案中的这一步:

在终端中使用命令zip -d addthis0.0.8.jar com/facebook/*从 addthis0.0.8.jar 中删除 Facebook 文件

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

于 2014-10-30T11:27:36.467 回答