Не можете использовать XMLGregorianCalendar в Android, даже если он задокументирован? - PullRequest
5 голосов
/ 27 октября 2011

Я действительно не могу понять это: похоже, что в 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.Зачем вам документировать то, что не может быть использовано?У кого-нибудь есть решение по этому вопросу, которое может не включать переупаковку?

1 Ответ

9 голосов
/ 27 октября 2011

Похоже, несмотря на то, что он был в API начиная с v8, ни одна версия Android никогда не поставлялась с реализацией . Удобно, правда?

Одним из решений является загрузка jar-реализации *1005* Java и включение ее в путь сборки вашего проекта.

Ваш код будет немного отличаться:

DatatypeFactory datatype = DatatypeFactoryImpl.newInstance();
...