在Android中无法使用XMLGregorianCalendar,即使它已被记录?

时间:2011-10-27 15:37:27

标签: android datetime w3c xml-deserialization

我真的无法理解这一点:看起来Android有XMLGregorianCalendar类,因为它记录在here。 但如果你继续尝试使用它,那就是你得到的:

10-27 17:21:43.677: E/AndroidRuntime(14850): Caused by: javax.xml.datatype.DatatypeConfigurationException: Provider org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl not found
10-27 17:21:43.677: E/AndroidRuntime(14850):    at javax.xml.datatype.DatatypeFactory.newInstance(DatatypeFactory.java:102)

这发生在这一行:

DatatypeFactory datatype = DatatypeFactory.newInstance();

然后猜测一下,它不应该像官方Android Javadoc中记录的那样表现。

这看起来像是关于Android的不那么聪明的事情之一。你为什么要记录一些不能使用的东西? 有没有人对此有解决方案,可能不包括重新包装?

1 个答案:

答案 0 :(得分:9)

看起来即使它自v8以来一直在API中no version of Android has ever shipped with an implementation。很方便,对吧?

一种解决方案是下载Xerces2 Java implementation jar并将其包含在项目的构建路径中。

您的代码只会略有不同:

DatatypeFactory datatype = DatatypeFactoryImpl.newInstance();