当前位置: 首页 > 面试题库 >

Proguard保留班级名称?

子车灿
2023-03-14
问题内容

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


问题答案:

使用-keepnamesproguard.cfg中的选项

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

-keepnames class_specification

简称-keep,allowshrinkingclass_specification

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



 类似资料:
  • 问题内容: 我正在开发一个以java jar形式分发的库,并且在proguard上运行proguard的方式是仅保留所需的接口。我有一堆成员变量和一些枚举定义的配置类。我的proguard脚本可以很好地保留成员变量,但是混淆了枚举定义。我已经尝试过一切想使Proguard保留这些内部定义的公共枚举的方法,但是我无法使其正常工作。 现在我正在使用: 如果我尝试: 我收到一个模棱两可的错误:“注意:配

  • 想要更改包名,但需要保持类名不变。知道吗?

  • 为了便于编程,CodeIgniter 使用了一些函数、方法、类 和 变量名来实现。 因此,这些名称不能被开发者所使用,下面是不能使用的保留名称列表。 控制器名称 因为你的控制器类将继承主程序控制器,所以你的方法命名一定不能和 主程序控制器类中的方法名相同,否则你的方法将会覆盖他们。 下面列出了已经保留的名称,请不要将你的控制器命名为这些: CI_Controller Default index 函

  • 问题内容: 我正在使用proguard混淆我的android应用程序。android应用程序包含一些本机代码,这些代码使回调到完全限定的java方法。我不必混淆这些类及其方法的名称。下面正确地保留了类名,但没有保留方法名。 问题答案: 对于本机方法:ProGuard手册>示例>处理本机方法 在这种情况下,对于回调方法:ProGuard手册>示例>处理回调方法 或者,例如,如果所有公共方法都可能是回

  • 问题内容: 我在proguard配置中添加了以下行: 但是现在proguard不会从结果中删除我的课程。我希望将其删除。 如何排除某个给定的班级? 谢谢 问题答案: 您可以使用以下规则:

  • 问题内容: 我目前正在将H2O用于分类问题数据集。我正在python 3.6环境中对其进行测试。我注意到预测方法的结果是给出0到1之间的值(我假设这是概率)。 在我的数据集中,目标属性是数字,即值是1且值是0。我确保将类型转换为目标属性的类别,但仍得到相同的结果。 然后我修改了代码,仍然使用H2OFrame上的方法将目标列转换为因数,结果没有任何变化。 但是,当我分别将target属性中的值分别更