2015-05-23 31 views
5

所以我想建立的ProGuard在搖籃爲我的Android Studio項目中,我得到建設項目時出現以下錯誤:Android的工作室 - ProGuard的IOException異常重複ZIP條目

Error:Execution failed for task ':app:proguardDebug'. java.io.IOException: Can't write [C:\Users\Rich\Desktop\WebProjects\AndroidStudioProjects\Roomie\app\build\intermediates\classes-proguard\debug\classes.jar] (Can't read C:\Users\Rich\Desktop\WebProjects\AndroidStudioProjects\Roomie\app\libs\bolts-android-1.1.4.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [a/a.class == bolts-android-1.1.4.jar:bolts/AggregateException.class]))

這裏是我的ProGuard規則的.pro

-keep class butterknife.** { *; } 
-dontwarn butterknife.internal.** 
-keep class **$$ViewInjector { *; } 

-dontwarn org.apache.http.annotation.** 

-keepclasseswithmembernames class * { 
    @butterknife.* <fields>; 
} 

-keepclasseswithmembernames class * { 
    @butterknife.* <methods>; 
} 

回答

8

對於即將成爲參考:

我偶然發現了同樣的問題,這post對SO幫我解決了這個問題。

基本上,當您在項目中包含庫時,其中一些包含通用依賴關係,這就是爲什麼proguard會因爲IOException而失敗。

我的問題是,我用解析的Facebook SDK和他們兩人的進口螺栓庫作爲一個依賴。
簡單地增加一些排除指令導入衝突的軟件開發工具包之一,當解決了這個問題:

compile ('com.facebook.android:facebook-android-sdk:4.4.0') { 
    exclude module: 'bolts-android' 
    exclude module: 'support-v4' 
} 
相關問題