2015-05-23 21 views
5

Also ich versuche ProGuard in Gradle für mein Android Studio-Projekt zu gründen und ich die folgende Fehlermeldung erhalten, wenn das Projekt des Bau:Android Studio - ProGuard IOException Doppelte Zip Eintrag

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]))

Hier sind meine proguard-Regeln

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

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

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

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

Antwort

8

Für futur Referenz:

ich stolperte über das gleiche Problem und diese post auf SO hat mir geholfen, es zu lösen.

Grundsätzlich, wenn Sie Bibliotheken in Ihr Projekt aufnehmen, enthalten einige von ihnen gemeinsame Abhängigkeiten und deshalb schlägt Proguard mit einer IOException fehl.

Mein Problem war, dass ich Parse und Facebook SDKs und beide importierte Schrauben Bibliothek als Abhängigkeit verwendet.
einfach das Hinzufügen einige Richtlinien ausschließen, wenn einer der widersprüchlichen SDKs Import hat das Problem gelöst:

compile ('com.facebook.android:facebook-android-sdk:4.4.0') { 
    exclude module: 'bolts-android' 
    exclude module: 'support-v4' 
} 
Verwandte Themen