Android Proguard с внешней банкой
Я добавил внешний файл jar в папку libs проекта mt и настроил его в пути сборки.
Когда я пытаюсь "Экспорт пакета Android", я получаю сообщение об ошибке Proguard для множества ссылочных классов, которые не найдены, например:
Предупреждение: com.itextpdf.text.BaseColor: не может найти ссылочный класс java.awt.Color
Когда я пытался отлаживать класс BaseColor, он работал нормально, поэтому я не могу понять, почему он предупреждает меня.
Любая помощь будет оценена,
Спасибо
Ответы
Ответ 1
Я пробовал несколько дней, чтобы правильно работать с внешними барабанами. Были предложения сделать что-то вроде загрузки ссылочных JARS или правильно определить libjars. Ни один из них не работал у меня.
Что делало эту работу для JARS, которая ошибалась:
-dontwarn javax.management.**
-dontwarn java.lang.management.**
-dontwarn org.apache.log4j.**
-dontwarn org.apache.commons.logging.**
-dontwarn org.slf4j.**
-dontwarn org.json.*
и это:
-keep class javax.** { *; }
-keep class org.** { *; }
-keep class twitter4j.** { *; }
(Очевидно, вам нужно будет настроить это, чтобы оно соответствовало вашим сообщениям об ошибках)
Удачи.
Ответ 2
com.itextpdf.text.BaseColor
включен в добавленную банку, я думаю. Он расширяет java.awt.Color
, который не входит в него, а в дистрибутив Java, который вы используете в Eclipse.
Когда вы экспортируете файл, процесс экспорта застрял, поскольку java.awt.Color
не существует в базовой системе Android. Я не думаю, что это связано с Proguard: это должно произойти, даже если вы отключите обфускацию.