【发布时间】:2016-05-01 02:39:25
【问题描述】:
我有一个实现 Android Parcelable 的类,它有一个名为 CREATOR 的字段,它实现了 Parcelable.Creator。我可以通过以下配置让 ProGuard 保留 CREATOR 字段:
-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
但我不知道如何让 ProGuard 保留 CREATOR 匿名类签名,因此,CREATOR 匿名实现的混淆类如下所示:
final class i extends Object
我们可以看到它丢失了implements Parcelable.Creator 签名,所以当我启动我的应用程序时,它崩溃了,并出现以下异常:
java.lang.ClassCastException: com.github.piasy.model.b.b.i cannot be
cast to android.os.Parcelable$Creator
我知道我可以让 ProGuard 保留所有内部类(因此 Parcelable.Creator 实现根本不会被混淆),但我想知道我是否可以只保留类签名(implements Parcelable.Creator 部分)。
我试过-keepattributes Signature,还是不行。
【问题讨论】:
标签: android proguard parcelable