android - Proguard 保持类(class)成员

标签 android json serialization field proguard

我如何告诉混淆器保留我的类(class)成员?

我需要它们来实现 JSON 兼容性...

这是我的课:

package com.tools.app.holiday;

public class Holiday {  

    private String name;

    private Calendar dateFrom = Calendar.getInstance();

    private Calendar dateTo = Calendar.getInstance();

    ...

我已经试过了,但是没用...

-keepclassmembers class com.tools.app.holiday.Holiday 

-keepclassmembers class com.tools.app.holiday.Holiday *{
    private String name;    
    private Calendar dateFrom;
    private Calendar dateTo;
}

我还实现了 serialisable 并做了:

-keepclassmembers class * implements java.io.Serializable {

但这一切都没有保留我的成员(member)名。 Proguard 总是将 ist 更改为 a、b、c :-( 我错过了什么?

最佳答案

所有类名都必须是完全限定的:

-keepclassmembers class com.tools.app.holiday.Holiday {
    private java.lang.String name;    
    private java.util.Calendar dateFrom;
    private java.util.Calendar dateTo;
}

默认情况下,如果您忘记了这一点,ProGuard 甚至会打印出消息。

关于android - Proguard 保持类(class)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8418733/

相关文章:

正确处理 str/unicode 的 Python 保存序列化?

switch 语句的 Java 扩展枚举

android - koin 中的 Dagger2 Provider

java - 当处于可序列化类中时,枚举不会在 Api Explorer 中设置

java - 编辑 JSON 字符串的最有效方法

javascript - 使用 Webhook 在 Slack 上发布自定义 JSON 消息

C#序列化一个没有无参数构造函数的类

javascript - 未创建 SQLITE 数据库 - PhoneGap

android - Dagger 柄 : Difference between annotating a class @Singleton and a provides function @Singleton

java - PHP Json解析Java对象