Использование jackson-dataformat-xml на Android ⇐ Android
Использование jackson-dataformat-xml на Android
Мне сложно использовать jackson-dataformat-xml на Android
У меня есть очень простой код, который отлично работает в oracle jre
Модуль JacksonXmlModule = новый JacksonXmlModule(); модуль.setDefaultUseWrapper(ложь); XmlMapper xmlMapper = новый XmlMapper (модуль); Сначала я попробовал официальную документацию, адаптированную для gradle (я не уверен, что все сделано правильно):
скомпилировать 'com.fasterxml.jackson.core:jackson-core:2.5.4' скомпилировать 'com.fasterxml.jackson.core:jackson-annotations:2.5.4' скомпилировать 'com.fasterxml.jackson.core:jackson-databind:2.5.4' скомпилировать 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.5.4' скомпилировать 'org.codehaus.woodstox:woodstox-core-asl:4.4.1' скомпилировать 'javax.xml.stream:stax-api:1.0-2' Результат: gradle не удается выполнить сборку основных библиотек в приложение
... :app:preDexDebug проблемы с обработкой "javax/xml/stream/EventFilter.class": Неосторожное или ошибочное использование основного класса (java.* или javax.*) когда не создается основная библиотека. ... Вторая попытка следовать ответу Шона (По сути, он переупаковывает библиотеки ядра с префиксными именами и перестраивает jackson-dataformat-xml для использования префиксных имен)
скомпилировать 'com.fasterxml.jackson.core:jackson-core:2.1.2' скомпилировать 'com.fasterxml.jackson.core:jackson-annotations:2.1.2' скомпилировать 'com.fasterxml.jackson.core:jackson-databind:2.1.2' // Переупакованные библиотеки, специфичные для XML скомпилировать 'edu.usf.cutr.android.xml:jackson-dataformat-xml-android:2.1.2' скомпилировать 'edu.usf.cutr.android.xml:stax2-api-android:3.1.1' скомпилировать 'edu.usf.cutr.android.xml:stax-api-android:1.0-2' скомпилировать 'edu.usf.cutr.android.xml:aalto-xml-android:0.9.8' И при сборке дубликатов произошел сбой
Дубликаты файлов, скопированные в APK META-INF/services/com.fasterxml.jackson.core.ObjectCodec так добавлено:
packagingOptions { ... исключить «META-INF/services/com.fasterxml.jackson.core.JsonFactory» исключить «META-INF/services/com.fasterxml.jackson.core.ObjectCodec» } При добавлении исключений он создает и развертывает, но завершает работу с ошибкой ниже стека (AFAIK, он не может найти поставщика SAX, хотя, насколько я понимаю, он добавлен в путь к классам)
edu.usf.cutr.javax.xml.stream.FactoryConfigurationError: поставщик com.bea.xml.stream.MXParserFactory не найден в edu.usf.cutr.javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:72) в edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:176) в edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92) в edu.usf.cutr.javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136) в com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:97) в com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:85) в com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:82) по адресу com.fasterxml.jackson.dataformat.xml.XmlMapper.(XmlMapper.java:46) Как правильно двигаться вперед по вопросу №1 или №2?
Мне сложно использовать jackson-dataformat-xml на Android
У меня есть очень простой код, который отлично работает в oracle jre
Модуль JacksonXmlModule = новый JacksonXmlModule(); модуль.setDefaultUseWrapper(ложь); XmlMapper xmlMapper = новый XmlMapper (модуль); Сначала я попробовал официальную документацию, адаптированную для gradle (я не уверен, что все сделано правильно):
скомпилировать 'com.fasterxml.jackson.core:jackson-core:2.5.4' скомпилировать 'com.fasterxml.jackson.core:jackson-annotations:2.5.4' скомпилировать 'com.fasterxml.jackson.core:jackson-databind:2.5.4' скомпилировать 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.5.4' скомпилировать 'org.codehaus.woodstox:woodstox-core-asl:4.4.1' скомпилировать 'javax.xml.stream:stax-api:1.0-2' Результат: gradle не удается выполнить сборку основных библиотек в приложение
... :app:preDexDebug проблемы с обработкой "javax/xml/stream/EventFilter.class": Неосторожное или ошибочное использование основного класса (java.* или javax.*) когда не создается основная библиотека. ... Вторая попытка следовать ответу Шона (По сути, он переупаковывает библиотеки ядра с префиксными именами и перестраивает jackson-dataformat-xml для использования префиксных имен)
скомпилировать 'com.fasterxml.jackson.core:jackson-core:2.1.2' скомпилировать 'com.fasterxml.jackson.core:jackson-annotations:2.1.2' скомпилировать 'com.fasterxml.jackson.core:jackson-databind:2.1.2' // Переупакованные библиотеки, специфичные для XML скомпилировать 'edu.usf.cutr.android.xml:jackson-dataformat-xml-android:2.1.2' скомпилировать 'edu.usf.cutr.android.xml:stax2-api-android:3.1.1' скомпилировать 'edu.usf.cutr.android.xml:stax-api-android:1.0-2' скомпилировать 'edu.usf.cutr.android.xml:aalto-xml-android:0.9.8' И при сборке дубликатов произошел сбой
Дубликаты файлов, скопированные в APK META-INF/services/com.fasterxml.jackson.core.ObjectCodec так добавлено:
packagingOptions { ... исключить «META-INF/services/com.fasterxml.jackson.core.JsonFactory» исключить «META-INF/services/com.fasterxml.jackson.core.ObjectCodec» } При добавлении исключений он создает и развертывает, но завершает работу с ошибкой ниже стека (AFAIK, он не может найти поставщика SAX, хотя, насколько я понимаю, он добавлен в путь к классам)
edu.usf.cutr.javax.xml.stream.FactoryConfigurationError: поставщик com.bea.xml.stream.MXParserFactory не найден в edu.usf.cutr.javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:72) в edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:176) в edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92) в edu.usf.cutr.javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136) в com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:97) в com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:85) в com.fasterxml.jackson.dataformat.xml.XmlFactory.(XmlFactory.java:82) по адресу com.fasterxml.jackson.dataformat.xml.XmlMapper.(XmlMapper.java:46) Как правильно двигаться вперед по вопросу №1 или №2?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение