Gson与Proguard一起,忘记了从Proguard Rules中排除我的数据模型

时间:2018-10-10 15:01:26

标签: android serialization gson proguard

我有一个有数百个用户发布的应用程序,该应用程序将记录的所有数据存储在设备上(这是健身跟踪应用程序)。它使用Gson将数据序列化为JSON,我使用了proguard。

但是...我忘记了从Proguard规则中排除我的数据类(正在序列化/反序列化)。

几个月前,我发布了该应用,并使用了Proguard的最低限度规则来构建东西。

就在上周,我发布了更新以改进应用程序中的其他功能。我的gradle / android studio已更新,当我进行构建时,由于Proguard而导致构建错误-我急于发布,因此将“ minify”设置为false并发布该版本。

我的应用程序不再能够打开历史数据,大概是因为未从Proguard规则中排除类,导致JSON字段被混淆了。

在进行后续构建时,Proguard是否总是以相同的方式混淆?也就是说,如果我能够解决Proguard构建失败的问题,我的用户是否可以看到他们的旧数据?

如果没有,我想我有2种选择:

  1. 我想我需要为Gson编写自己的Deserializer / Serializer,但需要“破解”原始的Proguard混淆。我目前正在想象一个设备的植根,在手机上安装一个旧的APK,获取一些数据并对其进行序列化,然后查看该文件并将其与我的班级进行比较,以期能够找出一种模式。 .......好玩!
  2. 向用户致歉,让他们重新安装该应用,并丢失所有数据。

我还有其他选择吗?!

0 个答案:

没有答案