【问题标题】:Can ProGuard make subclass' field name differ to superclass'ProGuard 可以使子类的字段名与超类不同吗
【发布时间】:2018-04-05 11:46:31
【问题描述】:

假设我有这些课程:

public class Superclass {
    private int intValue;
}

public class Subclass extends Superclass {
    private String stringValue;
}

ProGuard 可能会将它们混淆为:

public class A {
    private int a;
}

public class B extends A {
    private String a;
}

我可以让B.a 成为其超类中不存在的另一个名称,例如B.b?我的类即将用于序列化(JSON),存储在本地,因此我不需要原始字段名称,只需要它们不同。

【问题讨论】:

    标签: java proguard android-proguard


    【解决方案1】:

    据我所知,您应该保留序列化中使用的类。 Processing serializable classes 建议您应该写如下内容:

     -keepclassmembers class * implements java.io.Serializable { 
     private static final java.io.ObjectStreamField[] serialPersistentFields; 
     private void writeObject(java.io.ObjectOutputStream); 
     private void readObject(java.io.ObjectInputStream); 
     java.lang.Object writeReplace(); 
     java.lang.Object readResolve(); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2022-06-18
      • 2019-02-05
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 2019-06-29
      相关资源
      最近更新 更多