Как я могу исключить внешний .jar из обфускации Proguard (проект Android)? - PullRequest
24 голосов
/ 18 декабря 2010

Когда я экспортирую проект Android с помощью proguard.cfg, все упомянутые файлы .jar также запутываются. Как я могу исключить некоторые из этих .jars из обфускации?

Ответы [ 3 ]

25 голосов
/ 22 декабря 2010

Если вы не хотите редактировать скрипт Ant, вы можете добавить опции -keep в proguard.cfg для классов в этих внешних jar-файлах.Например:

-keep class othercode.** { *; }

Или с регулярным выражением, содержащим отрицатель:

-keep class !mycode.** { *; }

Стандартный скрипт Ant все равно объединит все ссылочные банки в один выходной jar.

6 голосов
/ 18 декабря 2010

В вашем конфигурационном файле установите ваши jar как библиотеки jar вместо входных jar.Это оставляет их нетронутыми.

-libjars <path/to/jars>
1 голос
/ 18 января 2013

Используя плагин Proguard Maven, я делаю это так

<inclusion>
   <groupId>foo.bar</groupId>
   <artifactId>foo-bar</artifactId>
   <library>true</library>
   <filter>!META-INF/**</filter>
</inclusion>

The

<library>true</library> 

Привести к внешней банке, слитой в последнюю банку после запутывания. Но это может привести к перезаписи Манифеста. Я пока не понял, как этого избежать наилучшим образом.

...