Приложение, использующее SimpleXML с minifyEnabled, не работает
У меня есть приложение, которое отлично работает при отладке, но когда я делаю релиз-версию, с minifyEnabled true
в build.gradle
файл, кажется, больше не работает:
D/SapphirePocket( 6520): Could not serialize telegram: <init> [interface a.a.a.b.am, interface a.a.a.a, class a.a.a.e.n]
Работает ли SimpleXML с уменьшенными APK, где проверка может не работать полностью или это должно сработать?
1 ответ
Когда вы активируете minifyEnabled, вы запутываете код с помощью proguard. SimpleXML должен использовать некоторые классы, которые вы запутываете, и вы не должны этого делать. Вы должны сохранить имена классов, которые нужны SimpleXML.
См. Этот пост о той же проблеме, что и у вас (simplexml не удалось скомпилировать с активированным proguard).
Первое, что я рекомендую, это поместить его в файл proguard (извлеченный из поста, на который я ссылался):
-keep public class org.simpleframework.** { *; }
-keep class org.simpleframework.xml.** { *; }
-keep class org.simpleframework.xml.core.** { *; }
-keep class org.simpleframework.xml.util.** { *; }
-keepattributes ElementList, Root
-keepclassmembers class * {
@org.simpleframework.xml.* *;
}
Для более подробного ответа, пожалуйста, покажите нам больше информации (файл proguard, код, получающий ошибку...).