Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Proguard返回错误代码1。从ADT 16更新到18后_Android_Adt_Proguard - Fatal编程技术网

Android Proguard返回错误代码1。从ADT 16更新到18后

Android Proguard返回错误代码1。从ADT 16更新到18后,android,adt,proguard,Android,Adt,Proguard,我曾经让4.6在Eclipse3.6.2上完美地导出签名应用程序 但一旦我将我的ADT+SDK从16.0.0.v201112150204-238534更新到18.0.0.v201203301601-306762,我就无法再导出已签名的应用程序(调试版本工作正常)。相反,我在控制台中收到以下错误日志: Proguard returned with error code 1. See console java.io.IOException: Can't read [\\bta\wspc\LibPro

我曾经让4.6在Eclipse3.6.2上完美地导出签名应用程序

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

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
我搜索了这么多线索,但我能找到的唯一相关线索是关于“三星SPen SDK 1.5”的参考资料,我显然没有


知道是什么原因导致了这一问题,以及如何解决这一问题吗?

通过将Proguard更新到最新的4.8解决了这一问题

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


显然,Proguard在CRLF与LF之间存在问题。

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

我通过从OpenJDK 7切换回Sun JDK 6解决了这个问题

更新:

使用JDK 6时问题又出现了。
我当前的解决方案:在导出时关闭Project->Build(项目->自动生成)。

这可能是因为自上次测试项目以来,文件已更改,因此项目可能无法完全生成。清理并在设备上运行项目,然后尝试导出。

问题通过在project.properties中注释行解决

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

我昨天已经发布了我的发现(以及针对我的具体案例的正确解决方案)。我的磁盘分区远没有满。知道为什么Proguard不能使用通过WinMerge修补的Proguard.cfg吗+目前是1。据我所知,ProGuard处理CR/LF很好。libproj1.jar(来自java运行时类)的根本原因“ZLIB输入流意外结束”强烈表明jar已损坏。这很容易检查。ProGuard版本或合并配置似乎是偶然的。+1每次都适用于我。虽然没有人有更持久的解决方案,但在导出时自动关闭构建对我来说很有效。谢谢