1

在为 Android 构建 APK 时,如果您尝试两次添加相同的库并出现如下错误,则 DX 工具会失败:

意外的顶级异常:java.lang.IllegalArgumentException:已添加:Lcom/google/ads/AdRequest$Gender;在 com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) 在 com.android.dx.dex.file.DexFile.add(DexFile.java:161) 在 com.android.dx.command .dexer.Main.processClass(Main.java:685) 在 com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) 在 com.android.dx.command.dexer.Main.access$600( Main.java:78) 在 com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) 在 com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 在com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 在 com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229) 在 com.android.dx.cf。直接的。main(SDKMain.java:129) 1 错误;中止

如果我有 2 个不同的库(jar)包含具有相同包名称和名称的类怎么办?

如何将这些添加到我的 APK 中?有没有办法做到这一点?

4

1 回答 1

0

首先请注意,即使两个jar不在同一个项目中,也可能会弹出“已添加”的错误。例如:将您的项目链接到包含具有相同类的 jar 的库项目。

其次:如果您确实有两个具有相同类文件的 jar,则构建系统将简单地使用它看到的第一个。因此,如果您知道您希望运行时使用其中的哪一个,那么解决方案很简单:只需将其放在类路径的前面即可。或者从视觉上讲 -将其放在 Order and Export 列表中的较高位置

在此处输入图像描述


第三:如果实在没有其他办法,可以随时打开一个jar文件(ee使用WinRAR)并删除其中的一些类文件。

于 2014-07-03T23:25:27.593 回答