我想从删除中跳过一个特定的类。它通常不会在我的应用程序中的任何地方引用,而只是通过反射来引用,因此它确实会被收缩器删除。它被包中的其他“相邻”类引用,但不能直接用于我的应用程序,只能由反射使用。
我决定专门处理这个特定的类,一个映射:
org.mypckg.Helper -> gh6...then当然,我用我的应用程序改变了反射调用:
forName("gh6")我的映射输入似乎没有问题,但是映射规则本身不足以阻止类被删除。此外,我仍然不能使用-keep开关保留这个类,因为它确实使用它的原始名称(org.mypckg.Helper)保留了它,这是我不想要的。
由于这样或那样的原因,我不能在项目中手动将类折射(重命名)为'gh6‘。
发布于 2012-09-27 05:22:50
ProGuard识别构造的Class.forName("org.mypckg.Helper");然后保留并混淆org.mypckg.Helper,而无需进一步的配置。
否则:
-keep,allowobfuscation class org.mypckg.Helper
-adaptclassstrings org.mypckg.AdjacentClass*Cfr。ProGuard手册>用法> Overview of Keep Options
Cfr。ProGuard手册>用法> -adaptclassstrings
https://stackoverflow.com/questions/12564754
复制相似问题