Как использовать Java ядро ​​lib не поддерживается в Android? - PullRequest
2 голосов
/ 25 мая 2011

При использовании базового класса в Android Dx возникает проблема обработки "javax / xml / bind / Binder.class". Мне нужны классы в javax.xml. * Для разработки веб-сервисов, но они не полностью поддерживаются в Android,Когда я импортирую эти jar-файлы, в eclipse не отображается ошибка компиляции, но DX не может ее обработать.После поиска в Интернете говорят, что мы можем использовать --core- library или jarjar для его переупаковки.Я не нашел никаких руководств по добавлению опции DX в Eclipse.Я благодарен за любую помощь в ее решении.

Ответы [ 2 ]

1 голос
/ 19 июня 2012

ошибка, которую вы получаете от Dx, основана только на именах пакетов java импортируемых библиотек и ничего больше.

сообщение может быть обобщено как: если вы импортируете библиотеку в пространство имен java. * Или javax. *, Очень вероятно, что оно зависит от других "базовых" библиотек, которые предоставляются только как часть JDK и, следовательно, не будет доступен на платформе Android. по сути, это мешает вам делать глупости, что верно в 99% случаев, когда вы видите это сообщение.

теперь, конечно, просто потому, что пакет java начинается с java. * Или javax. *, Не обязательно означает, что это зависит от самого JDK. это может прекрасно работать в Android. чтобы обойти проверку глупости, добавьте опцию --core-library в dx. изменить последнюю строку $ANDROID_HOME/platform-tools/dx с,

exec java $javaOpts -jar "$jarpath" "$@"

до

exec java $javaOpts -jar "$jarpath" --core-library "$@"

в моем случае я включал библиотеку, которая зависела от Джексона, которая зависит от JAXB. для меня переопределение проверки на глупость было приемлемым, потому что библиотека использовала Джексона только для JSON, а не для XML-сериализации (я включаю только библиотеку API JAXB, а не impl). Конечно, мне хотелось бы, чтобы был более понятный способ, но переписать библиотеку верхнего уровня, чтобы избежать использования Джексона, было невозможно.

0 голосов
/ 25 мая 2011

Эти классы скомпилированы для jvm, несовместимого с Android Dalvik.Вам нужно будет получить исходники, а не файлы jar, и скомпилировать их в файлы jar, скомпилированные для Android.

...