Proguard:忽略包不会阻止警告

时间:2016-06-16 17:50:54

标签: 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 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的情况下运行。然后,逐个工作,我可以弄清楚我是否应该忽略警告或只排除必要的部分。

我使用了this example如何排除包,添加

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

到我的proguard规则文件。但是,我得到了和以前一样的警告。我确实发现this建议将-keep-dontwarn结合使用,但我不明白为什么让proguard忽略该包并不能完全阻止警告。

1 个答案:

答案 0 :(得分:1)

保持课程不会自动隐藏与此课程相关的警告,因为它们可能表示配置有问题或输入丢失。

隐藏特定包裹使用的警告

-dontwarn com.example.**

这只会隐藏警告,而不会隐藏 Notes ,它们可以像这样隐藏:

-dontnote com.example.**

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