从 proguard 中排除包

Posted

技术标签:

【中文标题】从 proguard 中排除包【英文标题】:exclude packages from proguard 【发布时间】:2013-09-03 10:12:03 【问题描述】:

在proguard.cfg中排除父包后,如何包含一些包:

例如:

-keep com.myapp.** *;

我想让 proguard 混淆 com.myapp.data.** *;

【问题讨论】:

【参考方案1】:

您可以对类名使用 ProGuard 风格的正则表达式:

-keep class !com.myapp.data.**,com.myapp.**  *; 

【讨论】:

我试过 -keep class com.myapp.** ; -keep class !com.myapp.data.* *; 并且它没有工作?!?! 每个 -keep 选项都是独立考虑的,所以是不同的。 虽然我还是不明白为什么要把它们放在一行中,但它奏效了,谢谢你:) 如果我也想包含枚举,我该怎么办?

以上是关于从 proguard 中排除包的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能告诉 proguard 假设一个包没有被使用?

Proguard:-keepparameternames 仅适用于某些包

如何排除一个类被proguard保留

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

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

将 ProGuard 设置为仅混淆我的应用程序包