如何在第1行第0列跟踪" ExpatParser $ ParseException没有找到元素?

时间:2014-05-30 12:39:13

标签: android saxparser

正如问题所述,我想知道如何追查这种错误的原因。

在我对这个错误的研究中,我发现了使用输入流的各种事情。当它被调用两次时,它会给出异常。但是我的代码与那些代码没什么相似之处。我在ViewPager中使用AndroidSaxParser。每个片段执行一个AsyncTask,它解析rss并将数据加载到ListView中。

问题在随机时间发生,这使得难以追踪问题导致的问题。我也注意到在api 14+设备上问题根本没有发生。它只发生在我的api 8设备上,可能发生在其他设备上。 api 14.

我得到的确切Expat错误是:

ExpatParser$ParseException at line 1 column 0 no element found

LogCat指向的代码只是启动解析器的代码,但是没有任何内容为null或与正确执行的时间不同。

    try
    {
        Xml.parse(this.getInputStream(), Xml.Encoding.UTF_8, root.getContentHandler());
    }
    catch (Exception e)
    {
        Log.e("parser", "PARSER CRASHED");
        Log.e("expat", "inputStream " + this.getInputStream() + " xml " + Xml.Encoding.UTF_8 + " contentHandler " + root.getContentHandler());
        Log.w("the feed", "" + rssFeed);
        throw new RuntimeException(e);
    }

追踪: errors

1 个答案:

答案 0 :(得分:5)

解析时,您使用的inputStream为空。首先读取整个inputStream,然后解析内容。