【问题标题】:Can't run XML parser Jackson on Android无法在 Android 上运行 XML 解析器 Jackson
【发布时间】:2015-12-29 14:45:58
【问题描述】:

无法在 Android 上运行 XML 解析器 Jackson

 import android.content.Context;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.List;




in onCreate(){
    ObjectMapper xmlMapper = new XmlMapper();
            Channel root = xmlMapper.readValue(stringXML, Channel.class);
}



@JacksonXmlRootElement(localName = "channel")
    public static class Channel {
        public List<Item> channel;
    }

    public static class Item {
        @JacksonXmlProperty(localName = "item")
        public String item;
    }

错误是:

java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/xml/stream/XMLInputFactory;
 Caused by: java.lang.ClassNotFoundException: Didn't find class "javax.xml.stream.XMLInputFactory" on path: DexPathList

【问题讨论】:

  • 如果你问“如何解决这个错误?”,什么是“如何在 Android Studio 中重命名项目的主名称?”问题在开头帖子?而且您的代码不完整,无法编译。请创建一个minimal reproducible example
  • @Roman,抱歉,没有删除之前的问题

标签: java android xml jackson


【解决方案1】:

老问题,但是...

Android 没有 javax.xml.stream 包,大多数涉及 XML 的库都需要该包。

要自己添加,请将此依赖项添加到您的 build.gradle 文件中:

compile group: 'javax.xml.stream', name: 'stax-api', version: '1.0-2'

这是撰写此评论时的最新版本。您可以查看here 以获取更新版本。

【讨论】:

  • 真的很有帮助,谢谢
【解决方案2】:

您没有正确设置 Jackson for Android。看看这个页面Using jackson-dataformat-xml on android。有很好的描述如何做到这一点。

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 2017-05-06
    • 1970-01-01
    • 2016-06-21
    • 2018-02-16
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    相关资源
    最近更新 更多