如何强制ProGuard删除公共静态方法?

时间:2013-07-10 09:55:01

标签: java proguard

我的应用程序中有多个类提供public static void main(String[] args)方法。这些方法仅在开发/测试期间需要,我希望ProGuard删除它们(但只有这些方法,而不是整个周围的类)。我试过使用-assumenosideeffects,但这似乎只影响对方法的调用,而不是方法本身。我怎样才能强制Proguard删除整个main()方法,尽管它们是publicstatic

1 个答案:

答案 0 :(得分:1)

ProGuard需要种子来确定需要保留哪些类/方法。从这些种子中提取的任何东西也将被保留。

-assumenosideeffects选项用于删除对结果未以任何方式使用的方法的实际调用,但并不一定意味着删除了方法本身。

在您的特定情况下,您可能有一个保留所有public static void main(String[])方法的规则,因为这将是Java应用程序的标准种子。

您可以使用-whyareyoukeeping选项分析保留特定方法/类的原因。