为什么proguard要求你同时添加-keep和-dontwarn?

时间:2016-04-19 05:39:33

标签: java android proguard

我完全理解-keep会保留课程,而-dontwarn只会确保您不会收到警告。但是,我经常发现自己在我的项目中包含另一个SDK时出现这种情况 - 他们的说明是添加一行:

-keep class com.fasterxml.jackson.** { *; }

当我这样做并尝试使用proguard进行编译时,确定我的构建中断了,我得到的错误类似于:

Warning:com.test.MyClass: can't find referenced class com.fasterxml.jackson.databind.ObjectReader

显然,只要我添加-dontwarn com.fasterxml.jackson.**,错误就会消失。但为什么这首先发生了什么? -keep切换应该足够,因为它保留了类。为什么必须用-dontwarn加倍?

我的猜测是,它可能与引用在此过程中未实际重新编译的罐子有关。所以,如果有人知道为什么会这样做的确切原因(有时你需要-keep,有时你需要用-dontwarn复制它) - 我全都是耳朵。

0 个答案:

没有答案