Android Proguard:忽略包不会阻止警告

Android Proguard:忽略包不会阻止警告,android,proguard,android-proguard,Android,Proguard,Android Proguard,为什么让proguard忽略一个包并不能阻止与该包相关的警告 背景: 我正在尝试将proguard应用于一个大型项目。可以预见,我有很多这样的警告: Warning:net.fortuna.ical4j.model.CalendarFactory: can't find superclass or interface groovy.util.AbstractFactory Warning:net.fortuna.ical4j.model.CalendarFactory: can't find s

为什么让proguard忽略一个包并不能阻止与该包相关的警告

背景:

我正在尝试将proguard应用于一个大型项目。可以预见,我有很多这样的警告:

Warning:net.fortuna.ical4j.model.CalendarFactory: can't find superclass or interface groovy.util.AbstractFactory
Warning:net.fortuna.ical4j.model.CalendarFactory: can't find superclass or interface groovy.lang.GroovyObject
Warning:net.fortuna.ical4j.model.ContentBuilder: can't find superclass or interface groovy.util.FactoryBuilderSupport
Warning:net.fortuna.ical4j.model.ParameterListFactory: can't find superclass or interface groovy.util.AbstractFactory
Warning:net.fortuna.ical4j.model.ParameterListFactory: can't find superclass or interface groovy.lang.GroovyObject
Warning:net.fortuna.ical4j.model.component.AbstractComponentFactory: can't find superclass or interface groovy.util.AbstractFactory
Warning:net.fortuna.ical4j.model.component.AbstractComponentFactory: can't find superclass or interface groovy.lang.GroovyObject
Warning:net.fortuna.ical4j.model.component.XComponentFactory: can't find superclass or interface groovy.util.AbstractFactory
Warning:net.fortuna.ical4j.model.component.XComponentFactory: can't find superclass or interface groovy.lang.GroovyObject
Warning:net.fortuna.ical4j.model.parameter.AbstractParameterFactory: can't find superclass or interface groovy.util.AbstractFactory
Warning:net.fortuna.ical4j.model.parameter.AbstractParameterFactory: can't find superclass or interface groovy.lang.GroovyObject
Warning:net.fortuna.ical4j.model.property.AbstractPropertyFactory: can't find superclass or interface groovy.util.AbstractFactory
我想我可以通过将这些软件包从proguard中排除,直到我的应用程序在启用proguard的情况下运行。然后,一个包接一个包地工作,我可以决定是忽略警告,还是只排除必要的部分

我使用了如何排除一个包,添加

-keep class net.fortuna.ical4j.model.*{public protected private*;}


到我的proguard规则文件。然而,我得到了和以前一样的警告。我确实找到了建议将
-keep
-dontwarn
结合使用的方法,但我不明白为什么让proguard忽略软件包并不能阻止所有警告

保留一个类不会自动隐藏与该类相关的警告,因为它们可能表示配置有问题或缺少输入

要隐藏特定软件包的警告,请使用

-dontwarn com.example.**
这将只隐藏警告,而不隐藏注释,可以像这样隐藏:

-dontnote com.example.**

查看特定的警告消息,您似乎缺少一个由ical4j模型类使用和引用的groovy库。

groovy库丢失是因为proguard删除了它?我认为它不会删除直接使用/引用的内容…Proguard没有删除此库,在进行任何收缩/模糊/优化之前检查配置和输入时会发出警告。