使用SimpleXML与minifyEnabled的应用程序不起作用

时间:2016-02-11 15:29:19

标签: android simple-framework

我有一个在调试时工作正常的应用程序,但是当我在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 个答案:

答案 0 :(得分:2)

当您激活minifyEnabled时,您正在使用proguard对代码进行模糊处理。 SimpleXML应该使用一些你正在混淆的类,你不能这样做。您必须保留SimpleXML所需的类的名称。

请参阅this post了解与您相同的问题(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文件,获取错误的代码......)。