Ich habe eine Klasse implementieren Android Parcelable
, und es hat ein Feld mit dem Namen CREATOR
, die Umsetzung Parcelable.Creator
. Ich könnte lassen ProGuard das CREATOR
Feld halten, indem sie folgenden config:Wie kann ProGuard class implementieren Klausel (Klassensignatur)
-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
Aber ich weiß nicht, wie ProGuard lassen hält die CREATOR
anonyme Klasse Unterschrift, aus diesem Grunde, die verschleierte Klasse der CREATOR
anonymen Implementierung sieht aus wie unten:
final class i extends Object
Wir können sehen, dass es die implements Parcelable.Creator
Unterschrift losts, also wenn ich meine app starten, ist es mit der folgenden Ausnahme abgestürzt:
java.lang.ClassCastException: com.github.piasy.model.b.b.i cannot be
cast to android.os.Parcelable$Creator
Ich weiß, dass ich ProGuard alle inneren Klasse behalten konnte (so wird die Parcelable.Creator
Implementierung überhaupt nicht verschleiert werden), aber ich möchte wissen, könnte ich nur die Klassensignatur (implements Parcelable.Creator
Teil) behalten.
Ich habe versucht -keepattributes Signature
, es funktioniert nicht.