2012-02-14 41 views
11

我想在Android應用它採用了的Android庫項目使用proguard的,我收到以下錯誤:的Android - Proguard的重複拉鍊輸入錯誤

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和幾個其他依賴庫。

我的猜測是,這個問題與使用庫項目相關,並且proguard正在嘗試兩次處理來自庫項目的入口。但我不確定我應該使用哪些選項來解決此問題。

任何建議/方向,非常感謝。

更新1:通過刪除-injars bin/classes我能夠解決這個問題。我的猜測是,因爲proguard處理庫項目和應用程序項目,庫項目的.class文件被處理了兩次。一旦進入圖書館項目的bin/classes文件夾,並在應用程序項目的bin/classes文件夾中再次出現。

+22

'通過刪除-injars bin/classes' - 那是哪裏? – 2014-08-13 14:40:59

回答

4

該問題的更新1已解決我的問題,我現在能夠運行我的應用程序。

這個答案只是將問題標記爲答案,我可以在兩天後做些什麼。

+4

我的錯誤有點不同,但我沒有「-injars」子句。請幫助我,對此感到厭倦! Proguard返回錯誤代碼1.請參閱控制檯警告:無法寫入資源[META-INF/MANIFEST.MF](重複的zip條目[android-support-v4.jar:META-INF/MANIFEST.MF])警告:不能寫資源[META-INF/MANIFEST.MF](重複壓縮文件[library.jar:META-INF/MANIFEST.MF]) – thecr0w 2012-11-16 01:55:02

+0

@ thecr0w,你解決了嗎? – l33t 2013-11-03 00:42:16

+0

@ l33t,對不起,這已經很長時間了,我什麼都不能告訴你。 – thecr0w 2013-11-08 07:22:54

1

如果您得到重複的zip條目,它意味着它說,打開jar和檢查重複。

例如檢查你的build.xml文件不包含像

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

任何會包含.class文件的兩倍!