Обобщение в аргументах «держать» ProGuard

1

ProGuard определяет синтаксис "держать" здесь.

[@annotationtype] [[!]public|final|abstract|@ ...] [!]interface|class|enum classname
    [extends|implements [@annotationtype] classname]
[{
    [@annotationtype] [[!]public|private|protected|static|volatile|transient ...] <fields> |
                                                                      (fieldtype fieldname);
    [@annotationtype] [[!]public|private|protected|static|synchronized|native|abstract|strictfp ...] <methods> |
                                                                                           <init>(argumenttype,...) |
                                                                                           classname(argumenttype,...) |
                                                                                           (returntype methodname(argumenttype,...));
    [@annotationtype] [[!]public|private|protected|static ... ] *;
    ...
}]

Можно ли использовать обобщенные модификаторы и типы?
Например -keep * * my.package.MySomething { *; } -keep * * my.package.MySomething { *; } Первый * будет означать что-нибудь из этой части: [!]public|final|abstract|@...] и
второй * будет означать что-нибудь из этой части: [!]interface|class|enum.

Чуть более подробно я пытаюсь генерировать аргументы ProGuard динамически, и я НЕ знаю, является ли my.package.MySomething abstract class или public enum или чем-то еще.

Есть ли способ, вариант в ProGuard, который может помочь мне в этом?

Теги:
proguard
sbt-android-plugin

1 ответ

2
Лучший ответ

Конфигурация

-keep class my.package.MySomething { *; }

делает то, что вы хотите. Вы бы добавили модификаторы доступа, если хотите еще больше ограничить совпадения (например, public или интерфейс вместо класса).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню