0

我有一个 jar 文件,它作为小程序加载到浏览器中。在网页上,有几个 javascript 实例通知 Java 小程序要做什么。但是在使用 ProGuard 混淆 .jar 文件后,这不再有效。浏览器控制台给了我以下错误:

Object #HtmlAppletElement has no method 'example'

这是Java代码:

公共无效示例(int i){

做一点事();

}

在没有 ProGuard 混淆的情况下工作正常 - 我在 ProGuard 中尝试了许多不同的设置。我错过了什么?

4

1 回答 1

1

引自ProGuard 手册中的处理回调方法:

处理回调方法

如果您的应用程序、applet、servlet、库等包含从外部代码(本机代码、脚本等)调用的回调方法,您将希望保留它们,可能还需要保留它们的类。它们只是代码的入口点,就像应用程序的主要方法一样。如果其他选项不保留它们,则-keep类似以下选项的内容将保留回调类和方法:

-keep class mypackage.MyCallbackClass {
    void myCallbackMethod(java.lang.String);
}

这将保护给定的类和方法不被删除或重命名。

于 2013-09-08T12:52:26.913 回答