3

NetBeans Platform 7.2 に基づくアプリケーションでは、ModuleInstall クラスを次のコードに置き換えることができます。

import org.openide.modules.OnStart;
import org.openide.modules.OnStop;

@OnStart
public final class Installer implements Runnable {

   @Override
   public void run() {
       System.out.println("enable something...");
   }

   @OnStop
   public static final class Down implements Runnable {
       @Override
       public void run() {
           System.out.println("disable something...");
       }
   }
}

私の問題は、難読化の後、クラスローダーが注釈付きのクラスを見つけられないことです。

私が追加したProguard構成で(ここで提案されているように)

-keep @org.openide.modules.OnStart class *

しかし、明らかにこれでは不十分であるか、機能しません。

誰か提案がありますか?

4

2 に答える 2

1

私が理解できることから、仕様を維持するために使用する注釈を明示的に維持する必要があります。したがって、あなたの場合、追加

-keep enum org.openide.modules.OnStart

この注釈をセレクターとして使用できるようにします。注釈セレクターが実際に一致しない場合、Proguard は警告メッセージを含める必要があります。また、特にランタイム保持でない場合は、アノテーションを保持することも意味がありません。

于 2013-05-08T08:49:50.973 に答える
-1

試しました-keepattributes *Annotation*か?プロガードの使用法に基づいて、それはトリックを行うかもしれません。

于 2012-12-01T22:15:30.947 に答える