0

当我有一个使用库项目的 android 项目并且它们都在 apt_generated 文件夹中生成具有相同名称的类时,我收到“Dex Loader] 无法执行 dex:多个 dex 文件定义 xxx”错误。该类在两个项目中的名称和内容完全相同,但由于有多个,因此在尝试部署时出现错误。是否有一个标志或任何可以设置的东西,它总是使用第一类而忽略任何其他同名的?

4

1 回答 1

3

一种选择是从其中一个项目的构建中排除库项目。

库项目依赖项存储在Android Private LibrariesEclipse/ADT 的类路径容器中。

在最新的 ADT 中(可能在旧版本中),您可以选择不导出此类路径容器。

想象一下场景是你有一个项目取决于

  • Google Play 服务库。
  • android-maps-utils(一个谷歌地图扩展库项目,也依赖于谷歌播放服务)

在这种情况下,您将在打包/部署时遇到以下错误:

Unable to execute dex: Multiple dex files define Lcom/google/android/gms/R$attr;
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/google/android/gms/R$attr;

如果您Android Private Libraries通过取消选中 Java Build 路径的 `Order and Export1 视图中突出显示的容器来将 android-maps-utils 项目配置为不导出,则 Dex 错误将消失。

在此处输入图像描述

于 2013-06-22T10:11:07.070 回答