【问题标题】:In Eclipse - Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/annotation/AnimRes;In Eclipse - Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files defined Landroid/support/annotation/AnimRes;
【发布时间】:2015-07-15 07:18:17
【问题描述】:

我可以看到同一个问题被问了很多次,但是从所有可用的答案中我找不到任何解决我的问题的方法。

我的项目正在使用 2 个库项目,并且我还在 libs 中包含了以下 jar 文件。

- android-support-v4.jar

-aws-android-sdk-core-2.1.10.jar

-aws-android-sdk-s3-2.1.10.jar

- crashlytics.jar

-gson-2.3.1.jar

- library-1.0.15.jar(用于 Volley)

- picasso-2.2.0.jar

在开发过程中,我的应用运行良好。但是当我尝试导出时,为了创建签名的 APK 文件,我收到了一条错误消息。

“转换为 Dalvik 格式失败,错误 1”

在控制台中,我检查了消息,

"Jar 不匹配!修复你的依赖 在依赖列表中找到了3个版本的android-support-v4.jar,但并不是所有版本都相同。”

在消息本身中,我检查了其中一个 android-support-v4.jar(来自库项目之一)文件不同,因此我将其替换为另一个 jar 文件。现在所有的 jar 文件都是相同的。

但是现在当我尝试运行该项目时,我又收到一条错误消息

“您的项目包含错误,请在运行您的应用程序之前修复它们。”

现在在检查控制台时,我看到以下消息。

[2015-07-15 11:23:13 - Dex Loader] 无法执行 dex:多个 dex 文件定义 Landroid/support/annotation/AnimRes;

[2015-07-15 11:23:13 - MyApp] 转换为 Dalvik 格式失败:无法执行 dex:多个 dex 文件定义 Landroid/support/annotation/AnimRes;

从一些答案中,我发现这个问题是由于在项目中添加了多次出现的同一个 jar 文件。 所有包含的 jar 文件都是第 3 方且项目必需的。

我尝试了其他答案中建议的一些方法,但我无法解决这个问题。

请帮我解决。

【问题讨论】:

  • 请检查 v4 库有 3 个不同的版本
  • 我已经检查过并在所有地方添加了相同的版本。
  • 请为所有 lib 项目和主项目使用一个 v4 库
  • 检查你的库项目是否还包含v4.jar
  • 库项目包含 v4.jar 文件,我还在所有库和主项目中添加了相同的 v4.jar。然后在运行时我得到多个 dex 文件定义 Landroid/support/annotation/AnimRes;错误信息。

标签: android eclipse jar


【解决方案1】:

终于设法解决了。问题是由于同一组类或 jar 文件多次出现。在我的 libs 文件夹中,有 2 个 jar 文件

-gson-2.3.1.jar

-aws-android-sdk-core-2.1.10.jar

& 这两个都包含Gson 类。在 aws 中,它位于包 com.amazonaws.com.google.gson.Gson 中,而在 gson lib 中,它位于 com.google.gson.Gson 中。

因此,我收到了错误消息Multiple dex files defined Landroid/support/annotation/AnimRes;

现在我已经从 libs 中删除了 -gson-2.3.1.jar 文件,因为它是一个功能,我可以从 -aws-android-sdk-core-2.1.10.jar 库中使用它。

清理项目后,我能够创建签名的 APK 文件。

【讨论】:

    【解决方案2】:

    就我而言,我已从项目属性/Java 构建路径中删除了 Android 私有库。结果如图所示

    【讨论】:

      【解决方案3】:

      Eclipse中dalvik失败格式和错误sun/misc/basecoder64转换错误的解决方法。

      解决问题的说明是:

      1. 使用 Java 6 或 Ubuntu 安装 Windows XP sp2。
      2. 下载带有 SDK 19 的 adt 版本 23.0.2。
      3. 解压 adt 并将其安装在您的计算机上。
      4. 以管理员身份打开 Eclipse 并导入 android 文件。
      5. 在文件 project.properties 中添加 target = android-19
      6. 导出您的项目,此错误将不再出现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-06
        • 2017-09-12
        • 2015-08-26
        • 1970-01-01
        • 2016-04-23
        • 1970-01-01
        • 2015-06-30
        • 1970-01-01
        相关资源
        最近更新 更多