Proguard保留班级名称?


问题内容

您好,我正在编写一个Android应用程序,并且已经设置了Proguard来混淆我的应用程序。但是,我使用类加载器为应用程序动态加载了不同的扩展。问题在于,如果更改了它们的名称,它们将无法正确加载。如何防止Proguard混淆特定的类名?


问题答案:

使用-keepnamesproguard.cfg中的选项

请参阅手册
https://www.guardsquare.com/en/proguard/manual/usage#keepoptions

-keepnames class_specification

简称-keep,allowshrinkingclass_specification

指定要在收缩阶段未删除名称的类和类成员。例如,您可能希望保留实现Serializable接口的类的所有类名,以便处理后的代码与任何原始序列化的类保持兼容。完全不使用的类仍可以删除。仅在混淆时适用。