我有一个项目在Eclipse中构建良好,但在执行"ant debug"时抛出ZipException。输出如下(路径和项目名称除外)
-dex:
[dex] Converting compiled files and external libraries into /home/.../Android/[folder]/bin/classes.dex...
[dx]
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] java.util.zip.ZipException: error in opening zip file
[dx] at java.util.zip.ZipFile.open(Native Method)
[dx] at java.util.zip.ZipFile.<init>(ZipFile.java:131)
[dx] at java.util.zip.ZipFile.<init>(ZipFile.java:148)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:206)
[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:95)
[dx] 1 error; aborting
BUILD FAILED
/home/.../android-sdk-linux_x86/tools/ant/build.xml:818: The following error occurred while executing this line:
/home/.../android-sdk-linux_x86/tools/ant/build.xml:820: The following error occurred while executing this line:
/home/.../android-sdk-linux_x86/tools/ant/build.xml:832: The following error occurred while executing this line:
/home/.../android-sdk-linux_x86/tools/ant/build.xml:278: null returned: 1
此项目引用的库项目引用了另一个库项目。所以
项目A->项目B->项目C
对我来说,奇怪的是,从eclipse安装一切都很完美,但我需要能够从Ant构建项目。
我在谷歌上搜索过答案,但没有成功。SO中的类似问题对没有帮助
在Jenkins上编译Android项目时,如何修复此ZipException?
配置ant以运行单元测试。图书馆应该在哪里?类路径应该如何配置?避免ZipException
我在编制索引时也遇到了同样的错误。我发现包含的android库项目中的一个损坏的.jar
文件导致了这个问题。
修复包含的android库项目中损坏的.jar
文件修复了该问题。
希望这能帮助到别人=D
我在项目中遇到了同样的问题。我发现运行带有调试标志"-d"的ant会转储诊断问题所需的信息。Ant会将确切的dx命令转储到控制台,它看起来像这样:
Execute:Java13CommandLauncher: Executing '/Users/cliff/android-sdk-macosx/platform-tools/dx' with arguments:
'--dex'
'--output'
'/Users/cliff/Src/myproject/myproject-app/bin/classes.dex'
'/Users/cliff/Src/myproject/myproject-app/bin/classes'
'/Users/cliff/Src/myproject/myproject-config/bin/classes.jar'
在我的案例中,其中一个依赖项目(myproject-config)尚未构建,因此缺少myproject-connfig/bin/classes.jar。我进入myproject-config/文件夹,运行"ant debug",然后返回,成功构建了我的项目