Proguard:忽略库proguard错误

时间:2017-05-03 15:02:00

标签: android proguard obfuscation android-proguard

我正在优化我的proguard配置,我仍然保留一些不是强制性的类名。

经过深入思考后,我终于找到了原因。 我的类实现了Parcelable,我使用了一些使用这个proguard配置的库:

# Needed for Parcelable/SafeParcelable Creators to not get stripped
-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

似乎保留了类和CREATOR字段的名称。 我认为只需要CREATOR字段,因为可以在官方proguard-android-optimize.txt proguard文件中阅读:

-keepclassmembers class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

由于我不是图书馆的所有者,我无法改变它。有没有办法覆盖他们的proguard配置文件? (可能包含在consumerProguardFiles gradle关键字中)

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

我终于找到了关于proguard-android-optimize.txt的解决方案。

在AndroidStudio中,您可以访问proguard-android-optimize.txt(在Mac上为⌘↑O,在Windows / Linux中为control + shift + N)。只需复制文件内容,然后将其粘贴到您的项目中即可,而无需删除规则。最后,将其用作您自己的proguardFiles。

替换

  

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'

使用

  

proguardFiles'proguard-android-optimize.txt','proguard-rules.pro'

请注意,这需要您自担风险,并且不会从最新的嵌入式proguard文件进行优化。

关于consumerProguardFiles,您别无选择,如果可以的话,向他们提出拉取请求,或者如果可以与图书馆作者联系,则要求进行修改。