当我有一个使用库项目的 android 项目并且它们都在 apt_generated 文件夹中生成具有相同名称的类时,我收到“Dex Loader] 无法执行 dex:多个 dex 文件定义 xxx”错误。该类在两个项目中的名称和内容完全相同,但由于有多个,因此在尝试部署时出现错误。是否有一个标志或任何可以设置的东西,它总是使用第一类而忽略任何其他同名的?
问问题
1554 次
1 回答
3
一种选择是从其中一个项目的构建中排除库项目。
库项目依赖项存储在Android Private Libraries
Eclipse/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 回答