微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – Proguard:忽略库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关键字中)

谢谢你的回答.

解决方法:

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

在AndroidStudio中,您可以访问proguard-android-optimize.txt(在mac上为⌘↑O,或为windows / linux控制shift N).只需复制文件内容,然后将其粘贴到项目中,而不使用要删除的规则.最后将它用作您自己的proguardFiles.

更换

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

proguardFiles ‘proguard-android-optimize.txt’, ‘proguard-rules.pro’

请注意,您将面临自己的风险,并且您将无法从最新的嵌入式proguard文件中进行优化.

关于consumerProguardFiles,如果可以,您无权向他们提出拉取请求,或者如果您可以联系图书馆作者,则可以请求进化.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐