Краткий ответ
Если вы полностью уверены, что ваше приложение работает должным образом с другими типами сборки (отладка), отключите предупреждение, добавив следующее в файл proguard-rules.pro
-dontwarn com.github.siyamed.shapeimageview.**
Длинный ответ
В предупреждении говорится, что не удается найти указанный класс org.kxml2.io.KXmlParser
. KXmlParser
используется только в SvgToPath.java, как показано ниже:
import org.kxml2.io.KXmlParser;
...
public class SvgToPath {
...
private static PathInfo parse(InputStream in, boolean ignoreDefs, float dpi) {
try {
XmlPullParser xr = new KXmlParser();
...
} catch (Exception e) {
Log.w(TAG, "Parse error: " + e);
throw new RuntimeException(e);
}
}
...
}
Я думаю, что это приводит к одной из двух возможных причин отказа:
- Используемая вами библиотека не включает
org.kxml2.io.KXmlParser
, поэтому вам придется включить ее самостоятельно.
- Proguard взламывает
com.github.siyamed.shapeimageview
или org.kxml2.io.KXmlParser
, запутывая их код.
Если вы считаете, что Proguard нарушает ваши сборки, рассмотрите следующее.
В конце концов, библиотеки, которые вы и большинство людей используете, почти всегда имеют открытый исходный код. Запутывание открытого исходного кода не дает никаких преимуществ, поскольку любой потенциальный злоумышленник может просто найти исходный код в Интернете.
Вы можете сохранить классы (предотвратив их запутывание Proguard), добавив в файл proguard-rules.pro
следующее:
-keep class com.github.siyamed.shapeimageview.** { *; }
-keep interface com.github.siyamed.shapeimageview.** { *; }
-keep class org.kxml2.io.KXmlParser.** { *; }
-keep interface org.kxml2.io.KXmlParser.** { *; }
person
Jamie
schedule
12.06.2015