Android StAX游标解析器 – 找不到方法javax.xml.stream.XMLInputFactory.newInstance

我正在使用AsyncTask从i-net下载和解析XML内容。 下载和解析xml发生在doInBackground()方法中。 “dalvikvm”遇到了一个问题 – 它找不到方法。

这是LogCat的日志

 06-30 13:26:41.148: DEBUG/dalvikvm(507): GC freed 796 objects / 68088 bytes in 112ms 06-30 13:26:41.667: INFO/ActivityManager(52): Displayed activity com.news.reader/.SplashScreen: 5305 ms (total 63417 ms) 06-30 13:26:45.097: INFO/ActivityManager(52): Starting activity: Intent { cmp=com.news.reader/.DirBgNewsReader } 06-30 13:26:45.418: ERROR/dalvikvm(507): Could not find method javax.xml.stream.XMLInputFactory.newInstance, referenced from method com.news.reader.DirBgNewsReader.parse 06-30 13:26:45.427: WARN/dalvikvm(507): VFY: unable to resolve static method 104: Ljavax/xml/stream/XMLInputFactory;.newInstance ()Ljavax/xml/stream/XMLInputFactory; 06-30 13:26:45.427: WARN/dalvikvm(507): VFY: rejecting opcode 0x71 at 0x0013 06-30 13:26:45.427: WARN/dalvikvm(507): VFY: rejected Lcom/news/reader/DirBgNewsReader;.parse (Ljava/lang/String;)V 06-30 13:26:45.427: WARN/dalvikvm(507): Verifier rejected class Lcom/news/reader/DirBgNewsReader; 06-30 13:26:45.439: WARN/dalvikvm(507): Class init failed in newInstance call (Lcom/news/reader/DirBgNewsReader;) 06-30 13:26:55.217: WARN/ActivityManager(52): Launch timeout has expired, giving up wake lock! 06-30 13:26:55.217: WARN/ActivityManager(52): Activity idle timeout for HistoryRecord{4396eb68 com.news.reader/.DirBgNewsReader} 06-30 13:27:00.300: WARN/ActivityManager(52): Activity destroy timeout for HistoryRecord{43814048 com.news.reader/.SplashScreen} 

有人可以帮我解释为什么找不到指定的方法吗?

谢谢!

在Google上看 ,我发现了这个和这个 。

看起来StAX在Android上不可用,但是可以使用“等效”的XmlPullParser 。

我发现Blog Post simple-xml-in-android-1-5-up-up ( dleerob和Triminmon的答案)很有帮助,因为它解释了Simple XML正在做什么:

现在这些是一些奇怪的错误……简而言之,就在这里,Simple XML可以运行一些反思魔法来查看它可以实际用于序列化XML的类。 简单的XML基本上可以在任何地方工作(这就是为什么它适用于Android 1.5),这个reflection代码告诉它当前平台使用它的原因。 它还会缓存此reflection的结果,因此您只会看到这些错误消息出现一次,然后如果您愿意,Simple XML会自动“重新配置”它自己。

这篇博客文章准确地解释了这些错误发生了什么,并且可以安全地忽略它们。

博客文章