微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

发送到服务器时 Proguard 更改字符串请求变量名称

如何解决发送到服务器时 Proguard 更改字符串请求变量名称

我在创建 Signapk Proguard 时使用字符串请求 更改变量名称在 a b c d e f 我如何处理它 这只是一个请求中的一个问题,所有其他请求在此请求中工作正常我正在使用 GSON 这是我的代码

senditems_ 是一个包含 5 条学生记录的数组列表

String studentBatchListString = new Gson().toJson(send_items_);
@Override
protected Map<String,String> getParams() throws AuthFailureError { 
   Map<String,String> parameters = new HashMap<String,String>(); 
   Log.i("timessendreq","send");                    
   parameters.put("list_items",studentBatchListString);
   return parameters;
}

我正在使用排球字符串请求我的班级名称是 (Checkoutinfo) pakege 名称是 com.app.trasfer

解决方法

你有两种解决方法

  1. 使用代码中的注解并添加适当的 proguard 配置

字段序列化名称

@SerializedName("keyType")
String keyType;

proguard 配置

-keepclassmembers,allowobfuscation class * {
    @com.google.gson.annotations.SerializedName <fields>;
}
-keep,allowobfuscation @interface com.google.gson.annotations.**
  1. 如果你不想使用注解,那么你需要从混淆中排除类

    -keepclassmembers class com.example.app.YourClass{
         public protected private *;
         #Keep default members & functions
         !public !protected !private *;
     }
    
,

保持用户学生对象通过在你的班级顶部添加@Keep注解,如下所示

@Keep
class Student{
int id;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。