10

以前は、Proguard 4.6 を完全に動作させて、署名済みアプリケーションを Eclipse 3.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

SOで手がかりを探しましたが、見つけた唯一の関連スレッドは、Proguard 4.7とEclipse SDK 3.7.1に関するもので、明らかに持っていない「Samsung's SPen SDK 1.5」への参照があります。

これを引き起こしている可能性のあるものと、問題を解決する方法はありますか?

4

5 に答える 5

20

OpenJDK 7 から Sun JDK 6 に戻すことで解決しました。

アップデート:

問題は JDK 6 を使用して戻ってきました。私の現在の解決策: エクスポート時に [プロジェクト] -> [自動的にビルド] をオフにします。

于 2012-09-14T10:51:51.060 に答える
11

Proguard を最新の 4.8 にアップデートすることで問題は解決しました。

更新: Proguard 4.8 に更新すると問題は解決しましたが、最初に問題が発生したプロジェクトとほぼ同じ別のプロジェクトで再発しました (同じライブラリ プロジェクトを使用しています)。環境全体が同一であることを知っていたので、なぜこれが起こったのか (そしてなぜ Proguard がそれほど一貫していないのか) がわかりませんでした。約 2 時間後を追った後、私は最終的に推測しました:proguard.cfgファイルは Eclipse を介して編集されたのではなく、WinMerge を介して編集されました。proguard.cfg作業中のプロジェクトから(同一の!) をコピーするとすぐに、問題はなくなりました。

どうやら、Proguard には CRLF と LF に問題があるようです。

于 2012-06-11T13:40:15.697 に答える
2

エラーメッセージは、ProGuardに渡された入力jarが破損していることを示しています。ビルドが失敗した後、これを簡単に確認できます。ディスクパーティションがいっぱいになっている可能性があります。

于 2012-06-12T08:09:24.263 に答える
0

これは、プロジェクトを最後にテストしてからファイルが変更されたため、プロジェクトが完全にビルドされていない可能性があるために発生する可能性があります。デバイスでプロジェクトをクリーンアップして実行してから、エクスポートを試みます。

于 2013-01-21T23:53:31.980 に答える