Приложение, использующее 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, код, получающий ошибку...).

Другие вопросы по тегам