警告:类别'com.google.gson.internal.bind.ReflectiveTypeAdapterFactory'正在呼叫类别上的类别.getDeclaredFields。
启用proguard后,发现以下问题:
1.嵌套的静态类为空。
1.类中的自定义对象列表为空
已经引用了下面的bug,但是没有运气:
Proguard issue while using GSONUsing GSON with proguard enabled显示器
警告:类别'com.google.gson.internal.bind.ReflectiveTypeAdapterFactory'正在呼叫类别上的类别.getDeclaredFields。
启用proguard后,发现以下问题:
1.嵌套的静态类为空。
1.类中的自定义对象列表为空
已经引用了下面的bug,但是没有运气:
Proguard issue while using GSONUsing GSON with proguard enabled显示器
1条答案
按热度按时间0x6upsns1#
我通过对
proguard-rules.pro
文件执行以下三项操作解决了此问题:首先,确保
ProGuard
不会更改您用Gson
序列化的任何自定义类的名称。假设您有一个名为Classname
的类。要免除它,请将以下代码添加到您的progaurd-rules.pro
中:(将
com.your.package.classname
替换为实际的包和类名)我不得不为十几个类这样做。别忘了免除那些类的任何成员变量,这些变量也是自定义的。用
classname$innerclass
而不是classname
来免除内部类。其次,添加
Gson
库推荐的规则。They can be found here.以下是截至编写时的规则:最后一个,添加以下两条规则:
这就是我所遇到的嵌套
null
问题的解决方法--当然,是在我完成上述步骤之后。