1

Android で Tyrus (org.glassfish.tyrus.bundles:tyrus-standalone-client:1.10) を使用しようとしています。ここに私のプロガード関連の部分があります:

-dontoptimize
-keepparameternames
-keepclassmembers,allowoptimization enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class org.glassfish.tyrus.** {  *; }
-keep class org.glassfish.grizzly.** { *; }
-keep class javax.websocket.** { *; }

ClientManager connectToServer を呼び出しますが、このメソッドは返されず、ハングします。しかし、proguard を無効にすると機能します。proguardを使用してAndroidで動作させるにはどうすればよいですか?

4

1 に答える 1

0

Tyrus を使用する Fragment または Activity には、次の行を追加する必要があります。

-keep,includedescriptorclasses class com.package.YourClass$* { *; }

タイラスの場合、次の行を追加する必要があります

-keepattributes Signature,InnerClasses,*Annotation*
-keep,includedescriptorclasses  class org.glassfish.tyrus.** {  *; }
-keep,includedescriptorclasses  class org.glassfish.grizzly.** { *; }
-keep,includedescriptorclasses  class javax.websocket.** { *; }

これらの行を追加することで、Android で Tyrus を使用することができました。Tyrus のリファレンスは次のとおりです: https://blogs.oracle.com/PavelBucek/entry/reducing_websocket_client_jar_size

于 2016-02-06T22:13:06.793 に答える