gpt4 book ai didi

android - Ant 构建失败,出现 "UNEXPECTED TOP-LEVEL EXCEPTION (already added)"

转载 作者:太空狗 更新时间:2023-10-29 15:17:19 26 4
gpt4 key购买 nike

我已经看到很多关于此错误的线程,但没有一个能涵盖我的奇怪情况。首先是基础知识:

我有 6 个项目,所有这些都是模拟我的应用程序结构的缩减测试项目,我使用它们只是为了让构建工作。它们的依赖关系如下:

  • exampleLib 是一个不需要其他 jar 的库
    • 包含 Widget.java
  • exampleLib2 是一个不需要其他 jar 的库
    • 包含 Widget2.java
  • exampleLibNester 是一个需要 exampleLibexampleLib2 的库
    • 包含 WidgetPartDeux.java
  • exampleLibNester2 是一个需要 exampleLibexampleLib2exampleLibNester 的库
    • 包含 WidgetPartDeux2.java
  • exampleUser 是一个需要 exampleLibexampleLib2exampleLibNesterexampleLibNester2
    • 包含TheActivity.java
  • exampleTest 是检测 exampleUser 的测试应用程序,需要 exampleLibexampleLib2exampleLibNester
    • 包含 WidgetTest.java

当我在 Windows 上本地使用 ant 构建这些应用程序时,它们运行良好,我可以使用 install test运行测试。当我尝试在运行 Linux 的 CI 服务器上构建它们时,我收到了可怕的“已添加”错误消息。

-dex:
[dex] Converting compiled files and external libraries into /apps/pos360/jenkins/.hudson/jobs/James-Test/exampleLibUser/bin/classes.dex...
[dx]
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] java.lang.IllegalArgumentException: already added: Lcom/example/nester/WidgetPartDeux;
[dx] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[dx] at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[dx] at com.android.dx.command.dexer.Main.processClass(Main.java:486)
[dx] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
[dx] at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[dx] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
[dx] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
[dx] at com.android.dx.command.dexer.Main.processOne(Main.java:418)
[dx] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:206)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:174)
[dx] at com.android.dx.command.Main.main(Main.java:91)
[dx]
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] java.lang.IllegalArgumentException: already added: Lcom/example/lib/Widget;
[dx] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[dx] at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[dx] at com.android.dx.command.dexer.Main.processClass(Main.java:486)
[dx] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
[dx] at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[dx] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
[dx] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
[dx] at com.android.dx.command.dexer.Main.processOne(Main.java:418)
[dx] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:206)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:174)
[dx] at com.android.dx.command.Main.main(Main.java:91)
[dx] 2 errors; aborting

我可以查看 classes.jar 文件并看到 exampleLibNester2 正在将这些类拉入其 jar,但我不知道如何防止它这样做,也不知道为什么它在 linux 机器上而不是在 windows 上这样做一。两个 SDK 都已更新到最新版本。

最佳答案

据我所知,Android 构建的项目结构从 R14 开始发生了变化。

根据这篇文章,我建议查看您的项目构建路径并删除所有以 _src 结尾的文件夹: @foxykeep : How to fix the "conversion to Dalvik format failed" .尽管错误名称错误,但堆栈跟踪是相同的错误并且看起来是相同的问题。

关于android - Ant 构建失败,出现 "UNEXPECTED TOP-LEVEL EXCEPTION (already added)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11655405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com