Как заставить Proguard игнорировать внешние библиотеки?

Я хочу использовать Proguard в основном для обфускации.

Моя проблема в том, что у меня есть три библиотеки, Twitter4J и две библиотеки указателей. Эти библиотеки вызвали ошибки, когда я попытался создать подписанный APK. Чтобы преодолеть это, я поместил следующее в файл proguard.config

 -dontwarn org.apache.commons.codec.binary.** -dontwarn org.slf4j.** -dontwarn com.sun.syndication.io.** -dontwarn com.sun.syndication.feed.synd.* 

Хотя это избавилось от ошибок в консоли, когда я загрузил подписанный APK на свой мобильный телефон, он мгновенно разбился. DDMS заявила, что это связано с классом, который не найден в Twitter4J.

Избавиться от "dontwarns" выше не помогло. Также не добавляло dontshrink dontoptimise .

Я бы хотел, чтобы Proguard полностью игнорировал библиотеки (поскольку они все равно являются открытыми исходными кодами). Это возможно?

Solutions Collecting From Web of "Как заставить Proguard игнорировать внешние библиотеки?"

Попробуй это:

 -keep class javax.** { *; } -keep class org.** { *; } -keep class twitter4j.** { *; } 

Сообщение Cf от @CaspNZ: Android Proguard с внешней банкой

Вы должны добавить в proguard.cfg следующие строки, чтобы исключить все классы в пакете (и подпакеты)

 -keep class org.apache.commons.codec.binary.** -keep interface org.apache.commons.codec.binary.** -keep enum org.apache.commons.codec.binary.** -keep class org.slf4j.** -keep interface org.slf4j.** -keep enum org.slf4j.** -keep class com.sun.syndication.io.** -keep interface com.sun.syndication.io.** -keep enum com.sun.syndication.io.** -keep class com.sun.syndication.feed.synd.** -keep interface com.sun.syndication.feed.synd.** -keep enum com.sun.syndication.feed.synd.**