当前位置: 首页 > 面试题库 >

使用GSON时出现Proguard问题

薛烨
2023-03-14
问题内容

我在应用程序中使用Gson,为此,我使用了一些名称与使用Json相同的类。我的应用程序运行良好,但是在编写proguard时,应用程序崩溃了,我猜有些类正在缩小。我的错误是:

java.lang.ClassCastException:com.google.gson.internal.StringMap无法转换为com.sample.package.GsonClass


问题答案:

您需要将这些行添加到您的proguard中,以便在签署应用程序时保留gson类。

##---------------Begin: proguard configuration for Gson  ----------
# 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


# 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.** { *; }

##---------------End: proguard configuration for Gson  ----------


 类似资料:
  • 根据本教程,我正在使用改造和GSON将JSON序列化到POJO中。一切都正常工作。为了将实例保存到SQLite数据库中,我使用了糖ORM。我的POJO有字段-整数id。 Sugar ORM要求整数id应为Long。我说“好的”,然后说了很长时间。当我运行应用程序时,会出现以下错误: 01-18 06:03:44.436 4498-4498/uz.cp.retrofitsandboxE/Androi

  • 在序列化/反序列化过程中,我的项目在中实现了一个,用于保留对象的多态性状态。不管怎样,该项目在开发测试中工作得很好,但当它用proguard混淆发布并测试时,它就崩溃了。 我的Gson特定的proguard配置是: 我正在使用的打字适配器是: 任何来自开发者社区的帮助都将不胜感激。

  • 当我使用以下proguard规则生成APK时 我得到了这个错误 执行部分求值时发生意外错误:Class=[com/google/Firebase/Remote tconfig/Firebase RemteConfig]method =[getInstance()Lcom/google/Firebase/Remote tconfig/Firebase RemteConfig;]Exc0019=[ja

  • 我有一个数十万对象的列表。当每一个运行时,它都会根据给定的值执行一个可能很长的计算。正因为如此,我希望异步运行每个任务(最好是通过使用某种执行器),并在30秒后检索每次计算的结果,取消那些没有及时完成的结果。(所得值在其他地方使用。) 到目前为止,我就是这样实现它的: ArrayList存储每个要执行的,然后将其发送到ExecutorService以运行所有任务。我遇到的问题是,任务似乎是同步启动

  • 当试图将EnumTypeAdapter与Proguard一起使用时,它会在gson.getAdapter()中导致AssertionError。此错误似乎是由于类型信息丢失...以下是所有相关源代码: 例外情况: 正在使用的EnumTypeAdapter: 如何构造GSON对象: 我的ProGuard配置: 如前所述,我怀疑由于丢失了类型信息而出现了故障--在深入研究了GSON源代码后,这是用来解