我试图使用proguard在jar文件中混淆两个类。我班的一位有12种方法。我以命令和GUI形式运行proguard。但是仅混淆了12种方法中的两种方法,而其他10种方法则消失了。有人知道为什么会这样吗(运行没有错误)
另一个问题是我将一个类的公共方法转换为私有方法,因此当我将jar文件添加到新项目中时,无法在另一个项目中访问它。
谢谢
this is my config file:
-injars PKTB.jar
-outjars PKTB_out.jar
-libraryjars "J:\Program Files (x86)\Java\jdk1.6.0\jre"
-libraryjars "C:\Users\Mohsen\Downloads\bcprov-jdk15on-147.jar"
-libraryjars "C:\Users\Mohsen\Downloads\bcpkix-jdk15on-147.jar"
-printmapping proguard.map
-keep public class pktb.PKTB{
public static void main(java.lang.String[]);
}
最佳答案
proguard会删除未使用的类,方法和变量。查看“收缩选项”下的-dontshrink
here
您需要保留在jar之外使用的方法/类名,而不仅仅是主方法。在“保留选项”下的同一链接中查看-keep
选项