【发布时间】: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;错误信息。