Я пытаюсь настроить proguard для моего проекта Android. Мы используем некоторые части библиотеки netty в нашем коде, и я хотел бы использовать Proguard для полного удаления фрагментов кода, которые, я знаю, не используются.
Есть ли какой-нибудь способ сказать proguard, что пакет (или класс) никогда не используется и поэтому не должен включаться в выходные JAR-файлы? Обратите внимание, что я не говорю об исключении некоторого кода из обфускации (что и делают опции конфигурации -keep
), я говорю о полном удалении класса из вывода .
Редактировать : Как подсказывает pst ниже, я попытался использовать аргумент -whyareyoukeeping
, чтобы определить путь к коду, который Proguard использует для определения класса. Это не меняет вывод десятков предупреждений.
Я также попытался использовать фильтр файлов на -outjars
, как это было предложено pst. Это также не привело к изменениям, так как алгоритм все еще предполагает, что класс будет загружен, и фильтр применяется только после того, как «используемые» классы определены неправильно.
Для ясности: предупреждения приходят от классов в сторонних библиотеках, которые мы включили в наш проект Android. Мы не выполняем никакого кода, который будет загружать эти классы, и если proguard находит путь к коду, где он предполагает, что эти классы загружены, я хотел бы прямо сказать, что он не использует эти классы.