У меня есть класс, реализующий Android Parcelable
, и у него есть поле с именем CREATOR
, которое реализует Parcelable.Creator
. Я мог позволить ProGuard держать CREATOR
поле на следующей конфигурации:Как может ProGuard сохранить предложение класса (подпись класса)
-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
, он не работает.