使用Ant转换为dex时出现ZipException,在eclipse中可以正常工作



我有一个项目在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",然后返回,成功构建了我的项目

相关内容

  • 没有找到相关文章

最新更新