android — Как я могу сказать ProGuard сохранить мою функцию, которая используется для onClick?" />

Как я могу сказать ProGuard сохранить мою функцию, которая используется для onClick?

Я использую атрибут android:onClick в некоторых моих файлах макета .xml для приложения под Android, но ProGuard удаляет эти методы из мой код, когда он работает, потому что ничто в моем коде никогда не вызывает их.

Вместо того, чтобы указывать каждую функцию по отдельности, я хотел бы назвать их как-то вроде listener_functionName и использовать подстановочные знаки, например -keep listener_* (я знаю, что это неверно, но, надеюсь, это иллюстрирует мою цель).

Если это возможно, это было бы здорово, но если нет, мне все еще нужно знать, как указать эти функции в файле proguard.cfg. Любая помощь приветствуется.

12 голосов | спросил finiteloop 22 Mayam11 2011, 02:32:43

3 ответа


0

Согласно proguard документации:

  

Поля и методы также могут быть   указано с помощью регулярных выражений.   Имена могут содержать следующие   подстановочные знаки:? соответствует любому   символ в имени метода.   * соответствует любой части имени метода.

Итак, вы найдете указание

-keep class com.example.MyClass {
  public void listener_*(android.view.View);
}

в ваших флагах Proguard.

ответил Diego Torres Milano 22 Mayam11 2011, 02:49:51
0

Вы можете сделать это один раз для всех ваших классов следующим образом:

-keepclasseswithmembers class * {
    void listener_*(...);
}
ответил ggurov 19 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 19 Sep 2011 13:51:05 +0400 2011, 13:51:05
0

Немного более жадный подход, который должен поддерживать все методы "onClick":

-keepclassmembers class * {
    public void * (android.view.View);
}

== > так что в основном каждый публичный метод, в котором Android View является единственным Paramater, должен выжить в ProGuard.

ответил donfuxx 10 PM000000110000002731 2014, 23:59:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132