ProGuard: держи приватный внутренний класс

Как сохранить частный внутренний класс в ProGuard. Я уже использую ($ для внутреннего класса) приведенный ниже код в моем proguard.cfg, но он не работает.

-keep public class com.xxx.droid.activity.LoginActivity$JsInterface

3 ответа

Это должно работать:

-keep public class com.xxx.droid.activity.LoginActivity$* {
        *;
 }

Если внутренний класс является закрытым, вы не должны использовать public ключевое слово в шаблоне, потому что оно не будет совпадать. Компилятор фактически скомпилирует класс как видимый класс пакета (частные классы не существуют на уровне байт-кода). Следовательно:

-keep class com.xxx.droid.activity.LoginActivity$JsInterface

это сработало для меня

      -keepattributes InnerClasses
Другие вопросы по тегам