Gson打包混淆后返回的数据为null
使用代码:
@Override
public void onNext(Response<String> stringResponse) {
LogUtils.eLog(stringResponse.body());
Gson gson = new Gson();
AuthBean authBean = gson.fromJson(stringResponse.body(), AuthBean.class);
LogUtils.eLog(authBean.getLivekey());
mDetailsView.setAuthInfo(authBean);
}
错误信息:
分析–>解决办法:
直接编译的时候没有问题,当我打包好测试的时候发现返回的数据居然为null
这块是我gosn的混淆代码:
——————————- Gson ——————————-
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.* { ; }
-keep class com.google.gson.examples.android.model.* { ; }
-keep class com.google.gson.* { ;}
检查发现是实体类没有混淆导致的,release 会混淆代码,而debug不会混淆代码
需要将-keep class com.google.gson.examples.android.model.* { ; }换成自己的实体类
——————————- 实体类 ——————————-
-keep class .bean.{;} 此为具体的bean类包名