首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Proguard不会保留类成员的枚举

Proguard不会保留类成员的枚举
EN

Stack Overflow用户
提问于 2011-06-09 05:41:53
回答 1查看 21.1K关注 0票数 25

我正在开发一个作为java jar分发的库,并且我正在以一种只公开所需接口的方式在它上运行proguard。我有一个包含一堆成员变量和一些枚举定义的configuration类。我的proguard脚本很好地保留了成员变量,但是枚举定义被混淆了。我已经尝试了我能想到的所有方法来强制proguard保留这些内部定义的公共枚举,但是我不能让它工作。

现在我使用的是:

代码语言:javascript
运行
复制
-keep public class com.stuff.MyConfigObject {
    public *;
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

如果我尝试:

代码语言:javascript
运行
复制
-keep public enum com.stuff.MyConfigObject.MyEnum

我得到一个不明确的错误:“注意:配置引用了未知的类'com.stuff.MyConfigObject.MyEnum'”

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-12-13 10:35:01

要保留所有内部枚举,请尝试执行以下操作:

代码语言:javascript
运行
复制
-keep class * {
    public enum **;
}

它使我不必在proguard配置中逐一编写123个枚举。

此外,如果您正在处理库,请不要忘记-keepAttributes

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6285623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档