7

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

4

1 回答 1

1

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

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

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

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

于 2016-06-19T18:05:37.340 回答