我试图使用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选项

07-26 06:22