Android: 无法更新发布版本,因为 gson 没有添加到 pro guard 异常

Android: Can't update release version as gson was not added exception to pro guard

情况:

  1. 对象 (.com.package.model) 作为 Gson 字符串存储在 SQLite 数据库中
  2. 目前没有添加 proguard 异常
  3. 应用已在 Play 商店发布
  4. 更新版本后,应用崩溃并出现“预期开始数组但找到字符串”错误
  5. 禁用 proguard 或向两个版本添加异常可以让错误消失 由于该应用程序已经发布,有谁知道我如何将旧 apk 映射到新 apk? 我愿意请你喝咖啡 ;)

使用的异常:

# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }

根据 ProGuard 为您之前版本生成的映射文件,您可以使用 Gson 的 @SerializedName 手动注释模型 类 的字段并使用 alternate 指定混淆字段名称。 alternate 值仅在反序列化期间被考虑,因此允许您通过 @SerializedName 注释的 value 指定有意义的 属性 名称,这些名称将用于任何新序列化数据。