我正在使用Proguard来混淆我的代码,我需要保留每个第三方库:
-keep class com.layer.** -dontwarn com.layer.** -keep class com.twitter.** -keep class android.support.** -keep class com.crashlytics.** { *; } -dontwarn com.crashlytics.** ...
每当我添加新的第三方库时,我都需要检查其包名并将其添加到我的proguard配置文件中,否则应用程序可能会崩溃。
我不能像这样写规则吗?我不关心那些不属于我的代码。
-keep class !(my.package.name.**)
-dontwarn !(my.package.name.**)
谢谢!
答案 0 :(得分:9)
要保留除自己包中的类之外的所有内容,您可以使用已经指出的规则(括号除外):
-keep class !my.package.name.** { *; }
这将隐含其他一切。 如果需要,您仍然可以为您的类添加额外的 -keep 规则。
-dontwarn 的规则应该以类似的方式运作:
-dontwarn !my.package.name.**,**
如果需要,您还可以添加类似的 -dontnote 规则。