我有一个应用程序在调试时工作正常,但是当我制作发布版本时,在 build.gradle
文件中使用 minifyEnabled true
,它似乎无法工作完全不再:
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 一起使用,在这种情况下,检查可能不再完全有效,还是应该可以正常工作?
最佳答案
当您激活 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 文件、出现错误的代码...)。
关于android - 使用带有 minifyEnabled 的 SimpleXML 的应用程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343419/