首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java ProGuard。类保留(不删除),但仍允许混淆

Java ProGuard。类保留(不删除),但仍允许混淆
EN

Stack Overflow用户
提问于 2012-09-24 20:06:12
回答 1查看 5K关注 0票数 7

我想从删除中跳过一个特定的类。它通常不会在我的应用程序中的任何地方引用,而只是通过反射来引用,因此它确实会被收缩器删除。它被包中的其他“相邻”类引用,但不能直接用于我的应用程序,只能由反射使用。

我决定专门处理这个特定的类,一个映射:

代码语言:javascript
复制
org.mypckg.Helper -> gh6

...then当然,我用我的应用程序改变了反射调用:

代码语言:javascript
复制
forName("gh6")

我的映射输入似乎没有问题,但是映射规则本身不足以阻止类被删除。此外,我仍然不能使用-keep开关保留这个类,因为它确实使用它的原始名称(org.mypckg.Helper)保留了它,这是我不想要的。

由于这样或那样的原因,我不能在项目中手动将类折射(重命名)为'gh6‘。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-27 05:22:50

ProGuard识别构造的Class.forName("org.mypckg.Helper");然后保留并混淆org.mypckg.Helper,而无需进一步的配置。

否则:

代码语言:javascript
复制
-keep,allowobfuscation class org.mypckg.Helper
-adaptclassstrings org.mypckg.AdjacentClass*

Cfr。ProGuard手册>用法> Overview of Keep Options

Cfr。ProGuard手册>用法> -adaptclassstrings

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

https://stackoverflow.com/questions/12564754

复制
相关文章

相似问题

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