如何让 ProGuard 以简单的方式工作?
How to make ProGuard work in a simple way?
我在一个简单的应用程序上测试了 ProGuard。它工作得很好。但是,当我尝试在更复杂的东西上使用它时,它会显示所有类型的警告和错误,例如 class 依赖于其他或 class 尝试使用反射等。
这是配置
-injars Test.jar
-outjars Test2.jar
-libraryjars <java.home>/lib/rt.jar
-libraryjars <java.home>/lib/jce.jar
-printmapping myapplication.map
-keep class com.teradata.** {*;}
-keep class org.quartz.** {*;}
-keep class org.terracotta.** {*;}
-keep class com.sun.** {*;}
-keep class javax.** {*;}
-keep class org.apache.** {*;}
-keep class org.slf4j.** {*;}
-keep class com.** {*;}
-keep public class com.test.Main {
public static void main(java.lang.String[]);
}
有没有简单的方法让它工作。如果某些东西应该在 -keep
中,它可以自动这样做吗?能处理多少就处理多少,剩下的留着。
我也试过gui版。但我不知道如何 -keep
罐子。
即使没有冗长的关键字也太冗长了。我无法找到问题的根源,因为有大量重复的错误消息,例如 Maybe blah blah
,然后又一次又一次地出现同样的错误消息。
有什么简单的方法可以让它正常工作吗?
如果你不想被警告打扰并适当地修复它们(或使用 -dontwarn
指令忽略无害的),你可以使用 -ignorewarnings
指令,它将指示 ProGuard 继续处理您的应用程序,即使仍有一些警告。
我在一个简单的应用程序上测试了 ProGuard。它工作得很好。但是,当我尝试在更复杂的东西上使用它时,它会显示所有类型的警告和错误,例如 class 依赖于其他或 class 尝试使用反射等。
这是配置
-injars Test.jar
-outjars Test2.jar
-libraryjars <java.home>/lib/rt.jar
-libraryjars <java.home>/lib/jce.jar
-printmapping myapplication.map
-keep class com.teradata.** {*;}
-keep class org.quartz.** {*;}
-keep class org.terracotta.** {*;}
-keep class com.sun.** {*;}
-keep class javax.** {*;}
-keep class org.apache.** {*;}
-keep class org.slf4j.** {*;}
-keep class com.** {*;}
-keep public class com.test.Main {
public static void main(java.lang.String[]);
}
有没有简单的方法让它工作。如果某些东西应该在 -keep
中,它可以自动这样做吗?能处理多少就处理多少,剩下的留着。
我也试过gui版。但我不知道如何 -keep
罐子。
即使没有冗长的关键字也太冗长了。我无法找到问题的根源,因为有大量重复的错误消息,例如 Maybe blah blah
,然后又一次又一次地出现同样的错误消息。
有什么简单的方法可以让它正常工作吗?
如果你不想被警告打扰并适当地修复它们(或使用 -dontwarn
指令忽略无害的),你可以使用 -ignorewarnings
指令,它将指示 ProGuard 继续处理您的应用程序,即使仍有一些警告。