Я хотел ProGuard запутать труднее Parcelable классы, так что я изменил мой файл по адресу:Изменить ProGuard-android.txt для Parcelables
$ {sdk.dir}/инструменты/Proguard/ProGuard-андроида. TXT
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
с
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
и, кажется, работает без проблем или сбоев после модификации, но, это правильно? Если да, почему это не стандартная конфигурация?
Thanks
Не могли бы вы подробнее рассказать о «продлении android.os.Parcelable $ Создателю» я имел проблемы с ProGuard android sdk ($ {sdk.dir} /tools/proguard/proguard-android.txt ) и пришлось отступить на ваше решение, но я хотел бы лучше понять причину этого. Спасибо – forcewill
@forcewill Исходная конфигурация хранит все публичные статические поля с точным типом 'Parcelable $ Creator' (а не расширениями, что может быть проблемой). Улучшенная конфигурация сохраняет все статические поля с именем 'CREATOR' (независимо от их точных типов). Это должно охватывать все случаи. –
спасибо за объяснение, поэтому в ProGuard нет синтаксиса для «расширения типа»?. Странно, что ребята в Google делают эту «ошибку» использования «Parcelable $ Creator» вместо 'static ** CREATOR;' – forcewill