【问题标题】:How to troubleshoot "Duplicate zip entry" error?如何解决“重复的 zip 条目”错误?
【发布时间】:2013-06-03 00:04:12
【问题描述】:

从以前的项目切换到此项目然后尝试导出时,我不断收到此错误:

Proguard returned with error code 1. See console
Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [modonelib.jar:META-INF/MANIFEST.MF])
Warning: can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [mymainlib.jar:META-INF/MANIFEST.MF])
java.io.IOException: Can't write [C:\Users\ih8ie8\AppData\Local\Temp\android_8070931993503351509.jar] (Can't read [C:\workspace\MyMainLib\bin\mymainlib.jar] (Unexpected end of ZLIB input stream))
    at proguard.OutputWriter.writeOutput(OutputWriter.java:264)
    at proguard.OutputWriter.execute(OutputWriter.java:160)
    at proguard.ProGuard.writeOutput(ProGuard.java:372)
    at proguard.ProGuard.execute(ProGuard.java:153)
    at proguard.ProGuard.main(ProGuard.java:492)
Caused by: java.io.IOException: Can't read [C:\workspace\MyMainLib\bin\mymainlib.jar] (Unexpected end of ZLIB input stream)
    at proguard.InputReader.readInput(InputReader.java:230)
    at proguard.InputReader.readInput(InputReader.java:200)
    at proguard.OutputWriter.writeOutput(OutputWriter.java:253)
    ... 4 more
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
    at java.util.zip.InflaterInputStream.fill(Unknown Source)
    at java.util.zip.InflaterInputStream.read(Unknown Source)
    at java.util.zip.ZipInputStream.read(Unknown Source)
    at java.util.zip.ZipInputStream.closeEntry(Unknown Source)
    at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)
    at proguard.io.JarReader.read(JarReader.java:58)
    at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
    at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
    at proguard.InputReader.readInput(InputReader.java:226)
    ... 6 more

如果我退出并重新启动 Eclipse 两次,然后重复完全相同的过程,问题就会消失。

虽然我最终能够构建一个可部署的应用程序,但我更愿意一劳永逸地摆脱这个错误(我工作区中的其他应用程序不会发生这种情况)。

知道如何解决这个问题吗?

我在哪里可以找到这个“重复的 zip 条目”?

【问题讨论】:

  • 也许这可以帮助你:stackoverflow.com/questions/16357959/… /Phew
  • @Phew 哇,这是一个很棒的资源,谢谢!我的 progrard.cfg 中没有 -injars,但那里有很多值得探索的链接。
  • @Phew 不幸的是,没有任何资源适用于我的情况。迄今为止最好的帮助来自 Eric Lafortune(ProGuard 的开发者,见下文)。
  • 我曾经遇到过这个问题,虽然听起来很奇怪,但我通过为项目调用 Properties 来摆脱它 > Run/Debug Settings > 为项目选择(唯一的)Launch configuration > Edit...(按钮)> 重命名启动配置的Name: 以完全匹配项目的名称。没有任何意义,但 Eclipse 上的很多东西都没有意义,它对我有用。祝你好运。

标签: android proguard adt


【解决方案1】:

Eclipse 构建过程会创建一个中间 jar C:\workspace\MyMainLib\bin\mymainlib.jar,ProGuard 随后会将其读取为输入 jar。在这一点上,它似乎被虚假地截断了。也许文件系统有问题?您可以在构建之后检查中间 jar 是否未损坏。如果没问题,问题可能是 ProGuard 读取文件时该文件尚未刷新到磁盘。我看到的唯一解决方法是使用 Ant 执行发布构建。

【讨论】:

  • 你是大师。非常感谢。我不能说问题已经解决,但我可以澄清一下,如果问题出在文件系统上,我会看到其他应用程序项目表现出类似的行为,因为它们位于同一个工作区。他们没有表现出这个问题,所以我怀疑这个应用程序项目的一些特定的东西我还不能确定。某处的一些隐藏配置设置。暂时 +1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
相关资源
最近更新 更多