2012-02-14 12 views
11

私はアンドロイドライブラリプロジェクトを使用していますアンドロイドアプリケーションでProGuardのを使用しようとしていますし、私は次のようなエラーになっています:アンドロイド - ProGuardの重複したzipエントリエラー

java.io.IOException: Can't write 
    [/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar] 
    (Can't read [[email protected]] 
    (Duplicate zip entry 
    [be.class == android_144638064543155619.jar:com/comp/dp/library/R$anim.class])) 
at proguard.OutputWriter.writeOutput(OutputWriter.java:224) 
at proguard.OutputWriter.execute(OutputWriter.java:120) 
at proguard.ProGuard.writeOutput(ProGuard.java:391) 
at proguard.ProGuard.execute(ProGuard.java:152) 
at proguard.ProGuard.main(ProGuard.java:499) 

マイproguard.cfgファイルをthisであり、数は-libraryjarsで、rt.jarを参照しています。

私の推測では、この問題はライブラリプロジェクトを使用することに関連しており、プログアードはライブラリプロジェクトからのエントリを2回処理しようとしていると考えられます。しかし、私はこれを解決するためにどのオプションを使うべきかわからなかった。

どのような示唆/指示が高く評価されています。

更新1:-injars bin/classesを削除することで、この問題を解決することができました。私の推測では、プログアードはライブラリプロジェクトとアプリケーションプロジェクトの両方を処理するため、ライブラリプロジェクトの.classファイルが2回処理されたためです。ライブラリプロジェクトのbin/classesフォルダに1度、アプリケーションプロジェクトのbin/classesフォルダにもう一度保存します。

+22

'-injars bin/classes'を削除すると、どこにありますか? –

答えて

4

アップデート1は私の問題を解決しました。私は今ではアプリケーションを実行することができます。

この回答は、私が2日後に行うことができる回答として質問をマークすることです。

+4

私のエラーは少し異なりますが、私は "--injars"句を持っていません。 Proguardがエラーコード1で返されました。コンソール警告を参照:リソース[META-INF/MANIFEST.MF]を書き込めません(重複したzipエントリ[android-support-v4.jar:META-INF/MANIFEST.MF])警告:リソースを書き込めません[META-INF/MANIFEST.MF](重複したzipエントリ[library.jar:META-INF/MANIFEST.MF]) – thecr0w

+0

@ thecr0w、これを解決しましたか? – l33t

+0

@ l33t、申し訳ありませんが、それは長い時間でした、私はあなたに何かを伝えることはできません。 – thecr0w

1

ジップ入力が重複している場合は、それが何を意味するのか、ジャーを開いて重複を確認してください。

あなたのbuild.xmlが.classファイルを2回含まれるであろう

<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*.class"/> 
<zipfileset src="${file.reference.joda-time-2.2.jar}" includes="**/*"/> 

のようなものが含まれていませんチェック例えば

関連する問題