【发布时间】:2011-02-16 16:02:09
【问题描述】:
我尝试在 Android 上使用 Gson 来编组/解组 JAXB 注释类。
Android 设备上未提供 JAXB (XML) 注释,因此 JSON 库不得检查注释 - 否则我们会遇到 java.lang.NoClassDefFoundError: javax.xml.bind.annotation.XmlElement。
我使用Jackson 有相同的problem,但似乎是fixed(感谢StaxMan)。由于我不知道修复程序何时发布,我认为 Gson 会是一个替代方案,因为这个文档声明:
不需要使用任何注释来指示要包含的字段 用于序列化和反序列化。当前类中的所有字段(和 来自所有超类)默认包含在内。
不幸的是,我还是遇到了这个问题:
ERROR/AndroidRuntime(338): java.lang.NoClassDefFoundError: javax.xml.bind.annotation.XmlElement
ERROR/AndroidRuntime(338): at java.lang.reflect.Field.getDeclaredAnnotations(Native Method)
ERROR/AndroidRuntime(338): at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:196)
ERROR/AndroidRuntime(338): at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:199)
ERROR/AndroidRuntime(338): at com.google.gson.FieldAttributes.getAnnotations(FieldAttributes.java:159)
有没有办法在 Gson 中开启 Annotation 检查?
谢谢 克劳斯
【问题讨论】:
-
从那以后你找到解决这个问题的方法了吗?
-
@resus 没有,但我没有追究这个问题,因此无法说明当前状态。