Google Gson 保留通用签名

问题描述 投票:0回答:1

Firebase Crashlytics 中的崩溃出现并附有如何解决问题的说明:

致命异常:java.lang.IllegalStateException:必须使用类型参数创建 TypeToken:new TypeToken<...>() {};使用代码收缩器(ProGuard、R8 等)时,请确保保留通用签名。

我在尖括号 <...> 之间的通用类名为 ApiResponse。我用jsonschema2pojo创建了它。

generics gson proguard android-r8
1个回答
0
投票

需要排除 Gson 上的序列化/反序列化类。对于包含你的类的包看起来像这样

# Application classes that will be serialized/deserialized over Gson
-keep class com.myapplication.model.api.** { *; }

还有这个

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

# For using GSON @Expose annotation
-keepattributes *Annotation*
© www.soinside.com 2019 - 2024. All rights reserved.