Ric*_*ick 5 java android proguard gradle android-studio
所以我想在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>;
}
Run Code Online (Sandbox Code Playgroud)
未来参考:
我偶然发现了同样的问题,SO上的这篇文章帮助我解决了这个问题.
基本上,当您在项目中包含库时,其中一些包含公共依赖项,这就是proguard因IOException而失败的原因.
我的问题是我使用了Parse和Facebook SDK,并且他们都导入了bolt库作为依赖.在导入其中一个冲突的SDK时,
只需添加一些exclude指令即可解决问题:
compile ('com.facebook.android:facebook-android-sdk:4.4.0') {
exclude module: 'bolts-android'
exclude module: 'support-v4'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5777 次 |
| 最近记录: |