Парсер курсора Android StAX - не удалось найти метод javax.xml.stream.XMLInputFactory.newInstance - PullRequest
2 голосов
/ 01 июля 2011

Я использую AsyncTask для загрузки и анализа XML-контента из i-net. Загрузка и разбор 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}

Может ли кто-нибудь помочь мне и объяснить, почему он не может найти указанный метод?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 01 июля 2011

Глядя на Google , я нашел это и это .

Похоже, что StAX недоступен на Android, но доступен "эквивалент" XmlPullParser .

2 голосов
/ 28 августа 2016

Я нашел Сообщение в блоге simple-xml-in-android-1-5-and-up (ответ dleerob и Triminmon ) полезно, потому что он объясняет, что делает Simple XML:

Теперь это несколько странных ошибок ... В двух словах, именно здесь Simple XML работает с магией отражения, чтобы увидеть, какие классы он может использовать для сериализации вашего XML. Простой XML был создан, чтобы работать практически везде (именно поэтому он работает на Android 1.5), и этот рефлексионный код говорит ему, с чем его нынешняя платформа дает ему работать. Он также кэширует результат этого отражения, поэтому вы увидите, что эти сообщения об ошибках появляются только один раз, а затем Simple XML автоматически «перенастраивает» себя, если хотите.

0 голосов
/ 20 июня 2014

Этот пост в блоге объясняет, что именно происходит с этими ошибками, и что их можно смело игнорировать.

Запись блога

...