即使有文档记录,也无法在 Android 中使用 XMLGregorianCalendar?

发布于 2024-12-12 09:03:28 字数 884 浏览 0 评论 0原文

我真的无法理解这个:看起来 Android 有 XMLGregorianCalendar 类,因为它被记录在 这里。 但是,如果您继续尝试使用它,这就是您得到的结果:

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 中不太聪明的事情之一。为什么要记录一些无法使用的东西? 有没有人对此有解决方案,可能不包括重新包装?

I really can't understand this one: it looks like Android has the XMLGregorianCalendar class, because it is documented here.
But if you go ahead and try to use it, that's what you get:

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)

This happens on the line:

DatatypeFactory datatype = DatatypeFactory.newInstance();

And guess what, it should not behave like this, as documented on the official Android Javadoc.

This looks like one of the not-so-smart things about Android. Why would you document something that can't be used?
Does anyone have a solution on this, one that maybe does not include repackaging?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听风吹 2024-12-19 09:03:29

看起来,尽管它自 v8 起就已存在于 API 中,没有 Android 版本曾经附带过一个实现。方便吧?

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

您的代码只会略有不同:

DatatypeFactory datatype = DatatypeFactoryImpl.newInstance();

It looks like even though it's been in the API since v8, no version of Android has ever shipped with an implementation. Handy, right?

One solution is to download the Xerces2 Java implementation jar and include it on your project's build path.

Your code would be only slightly different:

DatatypeFactory datatype = DatatypeFactoryImpl.newInstance();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文