当我有一个使用库项目的 android 项目并且它们都在 apt_ generated 文件夹中生成具有相同名称的类时,我收到“Dex Loader]无法执行 dex:多个 dex 文件定义 xxx”错误。该类在两个项目中的名称和内容完全相同,但由于有多个类,因此在尝试部署时出现错误。是否有一个标志或任何可以设置的东西总是使用第一个类并忽略任何其他具有相同名称的类?
最佳答案
一种选择是从项目之一的构建中排除库项目。
库项目依赖项存储在 Eclipse/ADT 中的 Android Private Libraries
类路径容器中。
在最新的 ADT(可能还有旧版本)中,您可以选择不导出此类路径容器。
想象一下如果您有一个项目取决于
- Google Play 服务库。
- android-maps-utils(Google map 扩展库项目,也依赖于 Google Play 服务)
在这种情况下,您将在打包/部署时遇到以下错误:
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;
如果您通过取消选中 Java 构建路径的“Order and Export1” View 中突出显示的容器来将 android-maps-utils 项目配置为不导出 Android Private Libraries
,则会出现 Dex 错误离开。
关于java - 有没有办法让 Android 中的 Dex Loader 允许多个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032157/