2015-04-06 4 views
0

Я хочу, чтобы иметь возможность запутывать только подмножество классов с proguard, но мне трудно с тех пор, как proguard, похоже, предназначен прежде всего для обфускации всего, кроме черного списка.Как отрицать имя класса с помощью Proguard

Однако proguard manual действительно говорит:

Для дополнительной гибкости, имена классов могут быть на самом деле, разделенных запятыми списки имен классов, с необязательным! негаторы, как фильтры имен файлов. Эта нотация не выглядит очень похожей на Java, поэтому ее следует использовать с умеренностью.

, но примеров нет.

Я пытаюсь это:

-keep class !**.licence.** {*;} 
-keep class !**.*Licence*.** {*;} 

но это делает работу. Если я удалю !, сами шаблоны будут работать (все еще получает обфускацию, за исключением выше). Я также попытался с помощью методов определения ({*;} удален), но все равно не работает.

Есть ли у кого-нибудь примеры отрицателей на классных именах? Есть ли другой способ сказать proguard только обфускать конкретные шаблоны классов/пакетов (без использования аннотаций в коде)?

ответ

1

Я, наконец, понял это самостоятельно. Все отрицания должны быть в одной строке:

-keep class !ca.nanometrics.**.licence.**,!ca.nanometrics.**.*Licence*{*;} 
+0

спасибо, сэр, это отлично сработало для меня. – Inverce

Смежные вопросы