-keep class和-dontwarn有什么区别

时间:2016-02-08 11:14:33

标签: android apk proguard android-proguard

嘿,我是proGuard的新手,我用它来保护我的代码不受逆向工程的影响, 但是当我构建我的签名apk时,我启用了proGuard时遇到了很多错误,我已经搜索了我的问题我已经找到了答案,说明在错误消息中显示的类中使用了-dontwarn但是看到了来自proGuard它说

  

如果您不想过滤掉有问题的课程,可以尝试使用-ignorewarnings选项,甚至是-dontwarn选项。 如果您真的知道自己在做什么,请仅使用这些选项。

我不知道自己在做什么 这是我的proguard-rules.pro文件

-dontwarn okio.**
-dontwarn org.apache.**
-dontwarn com.appodeal.**
-dontwarn com.parse.**
-dontwarn com.squareup.**

我已经看到一些答案说使用-keep class

所以有人可以解释它

2 个答案:

答案 0 :(得分:9)

-keep class保留指定的类和类成员。

-dontwarn 不要警告任何未解决的引用。

此处有更多信息http://proguard.sourceforge.net/manual/refcard.html

答案 1 :(得分:4)

-dontwarn

指定不要警告未解决的引用和其他重要问题。可选过滤器是正则表达式; ProGuard不会打印有关匹配名称的类的警告。忽略警告可能很危险。例如,如果确实需要处理未解析的类或类成员,则处理的代码将无法正常运行。如果您知道自己在做什么,请仅使用此选项!

-keep class

指定要保留为代码入口点的类和类成员(字段和方法)。例如,为了保留应用程序,您可以指定主类及其主方法。为了处理库,您应该指定所有可公开访问的元素。

希望这有助于!!