У меня есть следующий код в нескольких действиях, и он прекрасно читает и анализирует XML-файлы, но в двух действиях при чтении небольших XML-файлов я получаю исключение нулевого указателя и не могу понять, в чем проблема:
while (eventType != XmlResourceParser.END_DOCUMENT) {
if ((eventType == XmlResourceParser.START_TAG) ||
(eventType == XmlResourceParser.TEXT)) {
// Get the name of the tag (eg scores or score)
String strName = xmlSymptoms.getName();
if (helpFound == 1){
helpText = xmlSymptoms.getText();
helpFound = 0;
} else if (strName.equals("string") && (eventType == XmlResourceParser.START_TAG)) {
helpFound = 1;
}
}
eventType = xmlSymptoms.next();
}
Исключение пустого указателя возникает, когда я читаю в "<string>
", который я могу прочитать с тем же кодом в других действиях.В этом упражнении я могу нормально читать другие XML-токены, пока не доберусь до «<string>
».
Вот мое окно отладки
Thread [<1> main] (Приостановлено)
ActivityThread.performLaunchActivity (ActivityThread $ ActivityRecord, Intent) строка: 2628
ActivityThread.handleLaunchActivity (ActivityThread $ ActivityRecord, Intent) строка: 2679
ActivityThread.access $ 2300 (ActivityThread, ActivityThread $ ActivityRecord In),строка: 125 ActivityThread $ H.handleMessage (сообщение) строка: 2033
ActivityThread $ H (обработчик) .dispatchMessage (сообщение) строка: 99 Looper.loop () строка: 123 ActivityThread.main (String []) строка: 4627
Method.invokeNative (Object, Object [], Class, Class [], Class, int, boolean) строка: недоступно [собственный метод]
Method.invoke (Object, Object ...) строка: 521
ZygoteInit $ MethodAndArgsCaller.run () строка: 868
ZygoteInit.main (String []) строка: 626 NativeStart.main (String []) строка: недоступно [собственный метод]
Тема [<6> Связующая нить № 2] (Running) Поток [<5> Binder Thread # 1] (выполняется)
У меня запущен LogCat, но в нем ничего не отображается.
Вот некоторый XML, который работает:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>A</key>
<array>
<string>ABANDONED, feeling: </string>
<string>ABSCESS: </string>
</array>
</dict>
</plist>
и вот некоторый XML, который не работает:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>HOWTOTAKE</key>
<array>
<string> Put two pellets in 8 oz bottle of water.</string>
</array>
</dict>
</plist>
Последнее замечание: когда я попадаю в поле "<string>
", getName () возвращает "null" вместо«строка».Очевидно, пытаясь что-то мне сказать, я просто не могу понять, почему возвращается «null».
Есть идеи, как это отладить?