问题描述
我在创建 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
解决方法
你有两种解决方法
- 使用代码中的注解并添加适当的 proguard 配置
字段序列化名称
@SerializedName("keyType")
String keyType;
proguard 配置
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
-keep,allowobfuscation @interface com.google.gson.annotations.**
-
如果你不想使用注解,那么你需要从混淆中排除类
-keepclassmembers class com.example.app.YourClass{ public protected private *; #Keep default members & functions !public !protected !private *; }
保持用户学生对象通过在你的班级顶部添加@Keep注解,如下所示
@Keep
class Student{
int id;
}