Android Studio - ProGuard IOException重复Zip条目

时间:2015-05-23 22:23:11

标签: java android android-studio gradle proguard

所以我试图在Gradle中为我的Android Studio项目设置ProGuard,在构建项目时出现以下错误:

  

错误:任务':app:proguardDebug'的执行失败。   java.io.IOException:无法写[C:\ Users \ Rich \ Desktop \ WebProjects \ AndroidStudioProjects \ Roomie \ app \ build \ intermediates \ classes-proguard \ debug \ classes.jar](无法读取C:\用户\ Rich \ Desktop \ WebProjects \ AndroidStudioProjects \ Roomie \ app \ libs \ bolts-android-1.1.4.jar(;;;;;;!META-INF / MANIFEST.MF)](重复的zip条目[a / a .class == bolts-android-1.1.4.jar:bolts / AggregateException.class]))

这是我的proguard-rules.pro

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

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

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

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

1 个答案:

答案 0 :(得分:9)

未来参考:

我偶然发现了同样的问题,这个post就帮我解决了。

基本上,当您在项目中包含库时,其中一些包含公共依赖项,这就是proguard因IOException而失败的原因。

我的问题是我使用了 Parse Facebook SDK,他们都将导入的螺栓库作为依赖。
导入其中一个冲突的SDK时,只需添加一些排除指令即可解决问题:

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