2016-04-20 11 views
1

У меня возникла странная проблема в Android Studio. Я также использую последние JDK. Я не могу импортировать следующие:Как использовать javax.xml.transform.stax в Android Studio?

  • javax.xml.stream
  • javax.xml.transform.stax

Они оба недоступны, и я не знаю, почему. В проекте non android я могу их импортировать. Есть ли подсказка, почему в Android нет?

Если нет, то простое решение состоит в том, что я добавил эти зависимости из maven. Но после запуска я получаю эту ошибку: (. * Java или javax *.)

«опрометчивое или ошибочное использования основного класса, когда не строит основную библиотеку

ответ

0

Android Безразлично». t использовать тот же Java JDK, что и для настольного или серверного приложения, он использует свою собственную реализацию JDK, которая добавляет иерархию android.*, но оставляет некоторые пакеты, которые находятся в стандартном JDK, особенно в расширениях Java javax.*. К сожалению, для вас javax.xml.stream и javax.xml.transform.stax относятся к тем вещам, которые они не выбрали для реализации. Кроме того, время выполнения Android не позволит вам загружать java.* или javax.* классов из внешнего JAR-файла по соображениям безопасности **. This answer может описать ситуацию немного лучше.

Ваши лучшие ставки, вероятно: 1) используйте другую стороннюю библиотеку, специально созданную для Android, такую ​​как SimpleXML; 2) искать переупакованную версию библиотек, например this JAXB effort; или 3) используйте инструмент, например Jar Jar Links, чтобы сделать переупаковку для вас.

Также смотрите этот отличный guide по разбору JSON и XML в Android.

** Примечание: я не могу найти документацию от Google, чтобы обосновать это; это просто повторяющийся «факт». Если кто-либо может указать на авторитетное заявление об обработке Android сторонних классов java[x].*, прокомментируйте ссылку или отредактируйте этот ответ.