Могу ли я обработать аннотации jaxb во время компиляции? - PullRequest
4 голосов
/ 22 декабря 2011

Я экспериментирую, чтобы посмотреть, смогу ли я как-нибудь заставить JAXB работать на Android в ограниченном сценарии. (использование других библиотек не вариант).

Я продвинулся довольно далеко, но в данный момент я застрял, получая следующую трассировку стека, вероятно, потому что Dalvik не позволяет этого.

E/AndroidRuntime(  643): java.lang.UnsatisfiedLinkError: getDeclaredAnnotations
E/AndroidRuntime(  643):    at java.lang.Package.getDeclaredAnnotations(Native Method)
E/AndroidRuntime(  643):    at java.lang.Package.getAnnotations(Package.java:97)
E/AndroidRuntime(  643):    at java.lang.Package.getAnnotation(Package.java:80)
E/AndroidRuntime(  643):    at com.sun.xml.bind.v2.model.annotation.RuntimeInlineAnnotationReader.getPackageAnnotation(RuntimeInlineAnnotationReader.java:129)

Я позаботился об удалении всех аннотаций уровня пакета и моего контекста JAXB с помощью определенного класса, который я аннотировал для JAXB:

JAXBContext jaxb_context = JAXBContext.newInstance(Num.class);

Могу ли я заставить JAXB делать все свои открытия во время компиляции, а не во время выполнения? (так же, как DataNucleus может обрабатывать аннотации JPA во время компиляции)

...