如何排除一个类被proguard保留

Posted

技术标签:

【中文标题】如何排除一个类被proguard保留【英文标题】:How to exclude a classes from being kept by proguard 【发布时间】:2017-04-24 22:57:06 【问题描述】:

我在我的 proguard 配置中添加了以下行:

 -keep class com.mypackage.** *;

但现在 proguard 不会从结果中删除我的课程 com.mypackage.BuildConfig.class。我希望它被删除。

我怎样才能从保留中排除给定的类?

谢谢

【问题讨论】:

keep 选项用于要求 proguard 保留一些元素(包、类、方法等)。如果您不想保留该类,则应删除该语句或在需要更细粒度的控件时对其进行细化。 【参考方案1】:

您可以使用以下规则:

-keep class !com.mypackage.BuildConfig, com.mypackage.**  *; 

【讨论】:

这可以应用于extendsimplements关键字吗?

以上是关于如何排除一个类被proguard保留的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 xsbt-proguard-plugin 排除/包含特定包?

如何从 proguard 构建中排除 R*.class 文件

使用 ProGuard 混淆私有字段

在proguard中,保留包/默认访问变量和方法的关键字是啥?

为啥 proguard 不混淆方法体?

使 Proguard 完全忽略包