如何使用 proGuard 进行混淆

how to obfuscate using proGuard

我创建了一个 class FMSHandler 并将其导出为一个名为 FMSCtrl_02.jar 的可运行 jar 并且该项目没有主要方法,FMSHandler class 中有一个名为过程(字符串 fms)。 在 proGuard 的 lib 目录中,我创建了一个包含以下内容的 myconfig.pro 文件:

-injars       FMSCtrl_02.jar
-outjars      FMSCtrl_02_out.jar
-libraryjars  <java.home>/lib/rt.jar
-printmapping FMSCtrl_02.map

-keep public class com.example.FMSHandler {

}

现在我在另一个项目中导入FMSCtrl_02_out.jar时,发现方法process(String fms)无法访问!

如何正确混淆代码?

您还应该指定要保留的方法(使用正确的签名)。

-keep public class com.example.FMSHandler {
    public void process(java.lang.String);
}