下午好。我不明白为什么代码在Google市场上发布后不起作用。在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会出现?
钥匙在哪里消失?"name“、"valueFloat”、"valueInt“、"valueStr”
发布于 2022-05-21 12:08:48
显然,您为您的release构建打开了ProGuard/R8,并且它的混淆模式重新命名了您的字段。
这里最大的教训是,在将release版本上传到Google之前,一定要对它们进行测试。
要解决这个问题,您可以:
@SerializedName注释来教Gson使用什么名称,而不是默认使用Java反射来查找字段的名称(作为混淆重命名这些字段)H 211F 212https://stackoverflow.com/questions/72324998
复制相似问题