启用proguard后获取警告和错误

时间:2015-11-23 07:09:13

标签: android android-gradle android-proguard

我为我的发布版本启用了proguard,当我运行项目时,我得到these warnings and errors。这是我的buildTypes块:

buildTypes {
        release {
            minifyEnabled true
            //shrinkResources true
            signingConfig signingConfigs.myConfig
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

构建消息太长,无法在此处发布,因此请设置外部链接。 这些警告的原因是什么?有什么我做错了吗?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

警告中提到的每个图书馆都有'您必须在proguard-rules.pro中添加自己的程序规则。例如,您可以在http://jakewharton.github.io/butterknife/" Proguard"找到ButterKnife的规则。部分。

答案 1 :(得分:1)

对于您正在使用的任何外部库,您需要在proguard.pro文件中添加规则。

例如在我的项目中,这些是我为改造和okhttp添加的proguard规则

# Retrofit 1.X

-keep class com.squareup.okhttp.** { *; }
-keep class retrofit.** { *; }
-keep interface com.squareup.okhttp.** { *; }

-dontwarn com.squareup.okhttp.**
-dontwarn okio.**
-dontwarn retrofit.**
-dontwarn rx.**

-keepclasseswithmembers class * {
    @retrofit.http.* <methods>;
}

这些规则取自

https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-square-retrofit.pro

所以你需要为每个库检查一下要添加的规则。