我正在尝试在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中使用它?
答案 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