Intereting Posts
Viewpager во фрагменте не отображается (восстанавливается) при возврате из другого фрагмента Gradle + Annotations + Flavors = не будет запускать обработчик аннотаций Как добавить пузыри в textview android? Размеры экрана Android Кинжал 2 – Почему это цикл зависимости? API распознавания активности Как использовать Eclipse для создания выпущенных подписанных apk? Java.lang.NullPointerException: попытка вызвать виртуальный метод 'int android.view.View.getImportantForAccessibility ()' для ссылки на нулевой объект Запрос, если база данных Android существует! TextInputLayout не показывает подсказку EditText, прежде чем пользователь будет фокусироваться на ней Google Maps отлично работает на Android, но я все равно получаю сообщение об ошибке «Не удалось найти класс« maps.ik », на который ссылается метод methods.z.ag.a" Как открыть стандартное приложение Google Map из моего приложения? Простой пример использования <merge> и <include> в XML-макетах Android Возможно ли создать HashMap, который является Parcelable на Android? Com.admob.android.ads.AdView unbound prefix?

Как заставить 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.**