0

アプレットとしてブラウザにロードされるjarファイルがあります。Web ページには、Java アプレットに何をすべきかを通知するいくつかの JavaScript インスタンスがあります。しかし、ProGuard で .jar ファイルを難読化すると、これは機能しなくなります。ブラウザ コンソールに次のエラーが表示されます。

Object #HtmlAppletElement has no method 'example'

これは Java コードです。

public void example(int i){

何かをする();

}

ProGuard の難読化なしで正常に動作します - ProGuard でさまざまな設定を試しました。私は何が欠けていますか?

4

1 に答える 1

1

ProGuard のマニュアルのコールバック メソッドの処理から引用:

コールバック メソッドの処理

アプリケーション、アプレット、サーブレット、ライブラリなどに、外部コード (ネイティブ コード、スクリプトなど) から呼び出されるコールバック メソッドが含まれている場合、それらとおそらくそれらのクラスも保持する必要があります。これらは、たとえばアプリケーションのメイン メソッドによく似た、コードへの単なるエントリ ポイントです。それらが他の-keepオプションによって保持されない場合、次のオプションのようなものは、コールバック クラスとメソッドを保持します。

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

これにより、指定されたクラスとメソッドが削除または名前変更されないように保持されます。

于 2013-09-08T12:52:26.913 に答える