android - 使用带有 minifyEnabled 的 SimpleXML 的应用程序不起作用

标签 android simple-framework

我有一个应用程序在调试时工作正常,但是当我制作发布版本时,在 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/

相关文章:

android - 相机顶部 OpenGL View 的替代方法

android - 如何合并一些可跨越的对象?

java - Android if 语句 - 如果字符串包含数组中的任何字符串

java - 简单的 XML 框架 : Having an "inline like" behaviour for objects in ElementMap

java - Android 中的 SimpleXML 反序列化错误

java - 使用 SimpleFramework 反序列化多个不同的标签(具有相同的名称)

android - 在gui之后在Android中加载代码

android - 如何将库项目添加到 android 项目?

java - simplexml android无法解析带有非结束元标记的html

android - 如何通过 SimpleXML 解析 XML