下午好。我不明白为什么代码在谷歌市场发布后不起作用。在Android工作室代码发布前
ArrayList<TableAccount> tableAccount = getTableAccount();
String jsonStr = new Gson().toJson(tableAccount);
实验结果:
Log.d(TAG, "RESULT: " + jsonStr);
RESULT: [{"name":"payment","valueFloat":0.0,"valueInt":0,"valueStr":"no"}]
可是,发帖之后,我看到:
Log.d(TAG, "RESULT: " + jsonStr);
RESULT: [{"a":"payment","b":"no","c":0,"d":0.0}]
为什么会出现字母a B c?
那么键在哪里消失呢?[“名称”,“值浮点”,“值整数”,“值字符串”]
1条答案
按热度按时间pxiryf3j1#
显然,您为您的
release
构建打开了ProGuard/R8,它的模糊模式重命名了您的字段。从这里得到的最大教训是,在将
release
构建上传到Google Play之前,请确保对其进行测试。要解决此问题,您可以:
@SerializedName
注解来教Gson使用什么名称,而不是默认的使用Java反射来查找字段的名称(因为混淆重命名了这些字段)