使用Proguard在Android中使用Tyrus Websocket客户端

时间:2016-02-06 15:56:29

标签: android android-proguard tyrus

我正在尝试在Android中使用Tyrus(org.glassfish.tyrus.bundles:tyrus-standalone-client:1.10)。这是我的proguard相关部分:

-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中使用它?

1 个答案:

答案 0 :(得分:0)

您需要为使用Tyrus的片段或活动添加以下行

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

对于tyrus,您需要添加以下行

-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