首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Proguard返回错误代码% 1。从ADT 16更新为18后

Proguard返回错误代码% 1。从ADT 16更新为18后
EN

Stack Overflow用户
提问于 2012-06-11 20:43:11
回答 5查看 8.7K关注 0票数 10

我曾经使用Eclipse4.6完美地在Eclipse3.6.2上导出签名的应用程序。

但是,一旦我将我的ADT + SDK从16.0.0.v201112150204-238534更新到18.0.0.v201203301601-306762,我就不能再导出签名的应用程序(调试版工作得很好)。相反,我在控制台中收到以下错误日志:

代码语言:javascript
复制
Proguard returned with error code 1. See console
java.io.IOException: Can't read [\\bta\wspc\LibProj1\bin\libproj1.jar] (Can't process class [com/bta/blib/proj1/BtClsProj1.class] (Unexpected end of ZLIB input stream))
    at proguard.InputReader.readInput(InputReader.java:230)
    at proguard.InputReader.readInput(InputReader.java:200)
    at proguard.InputReader.readInput(InputReader.java:178)
    at proguard.InputReader.execute(InputReader.java:78)
    at proguard.ProGuard.readInput(ProGuard.java:196)
    at proguard.ProGuard.execute(ProGuard.java:78)
    at proguard.ProGuard.main(ProGuard.java:492)
Caused by: java.io.IOException: Can't process class [com/bta/blib/proj1/BtClsProj1.class] (Unexpected end of ZLIB input stream)
    at proguard.io.ClassReader.read(ClassReader.java:112)
    at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
    at proguard.io.JarReader.read(JarReader.java:65)
    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
Caused by: java.lang.RuntimeException: Unexpected end of ZLIB input stream
    at proguard.classfile.io.RuntimeDataInput.readInt(RuntimeDataInput.java:136)
    at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:77)
    at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)
    at proguard.io.ClassReader.read(ClassReader.java:91)
    ... 11 more

我搜索了这么多线索,但我能找到的唯一相关的帖子是关于Proguard 4.7 with Eclipse SDK 3.7.1的,其中有一些参考“三星的SPen SDK1.5”,而我显然没有。

你知道是什么导致了这个问题吗?如何解决这个问题?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-11 21:40:16

通过将Proguard更新到最新的4.8版本解决了问题。

更新:在更新到ProGuar4.8解决了这个问题时,它在另一个项目中再次出现,这个项目几乎与第一次出现该问题的项目相同(它使用相同的库项目)。知道整个环境都是一样的,我不知道为什么会发生这种情况(以及为什么Proguard如此不一致)。经过大约两个小时的摸索,我终于有了一个猜测:proguard.cfg文件不是通过Eclipse编辑的,而是通过WinMerge编辑的。当我从工作项目中复制(完全相同的!) proguard.cfg时,问题就消失了。

显然,Proguard在CRLF和LF之间有问题。

票数 11
EN

Stack Overflow用户

发布于 2012-09-14 18:51:51

我通过从OpenJDK 7切换回SunJDK6解决了这个问题。

更新:

我目前的解决方案是:导出时自动关闭项目->构建。

票数 20
EN

Stack Overflow用户

发布于 2012-06-12 16:09:24

该错误消息表明传递给ProGuard的输入jar已损坏。在构建失败后,您可以很容易地检查这一点。可能您的磁盘分区已满。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10980323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档