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

ssc*_*rth 6 java proguard

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

T. *_*art 1

ProGuard 需要种子来确定需要保留哪些类/方法。从这些种子引用的任何内容也将被保留。

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

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

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