当我在启用proguard的情况下运行应用程序时,@QueryMap
查询字符串未附加到主URL。
界面功能是:
@GET(PATH_HEADER + "/function/")
ServiceLoginResponse function( @QueryMap Map options );
启用日志后,使用proguard,这是请求:
com.app D/Retrofit﹕ ---> HTTP GET https://domain.com/json/function/
com.app D/Retrofit﹕ Cache-Control: public, max-age=600
com.app D/Retrofit﹕ ---> END HTTP (no body)
没有proguard:
com.app D/Retrofit﹕ ---> HTTP GET https://domain.com/json/function/?param1=val1¶m2=val2
com.app D/Retrofit﹕ Cache-Control: public, max-age=600
com.app D/Retrofit﹕ ---> END HTTP (no body)
在我的Proguard规则文件中,我有这个;
-keep class retrofit.** { *; }
答案 0 :(得分:2)
对于改造,您需要保留注释。为此添加此规则:
-keepattributes *Annotation*
然后你需要你的规则来保留Retrofit类:
-keep class retrofit.** { *; }
您可能需要保留REST API及其API方法:
-keepclasseswithmembers class * {
@retrofit.http.* <methods>;
}