Ошибка синтаксического анализа XML на Android, но работает на iPhone

Ссылка на вопросы и ответы по Appcelerator: Ошибка синтаксического анализа XML на Android, но работает на iPhone

Я готовлю общее приложение, которое работает как для телефонов iPhone, так и для телефонов Android с тем же кодом, для которого в основном используется Titanium. С тем же кодом я нашел разные результаты для анализа XML-документа, и мое приложение для Android не загружает его должным образом. Это вызывает исключение NULLPointer. Но тот же код отлично работает на iPhone.

Вы можете это проверить?

xyz(languageCode, currentVersion, xmldoc) {
try {
  Ti.API.info('Start parsing the library');
  var archiveData = xmldoc.getElementsByTagName('archive');
  Ti.API.info('Archive: ' + archiveData);
  Ti.API.info('Item: ' + archiveData.item);
  Ti.API.info('Lendth: ' + archiveData.length);
  var newVersion = archiveData.item(0).getAttribute('version');
}catch(e){
  Ti.API.info('Library Went In Catch: ' + e);
}

Вызов функции: из метода onload() Ti.Network.HttpClient

xyz (код языка, версия, this.responseXML.documentElement);

Выход айфона:

Архив: [объект TiDOMNodeList]

[INFO] Элемент: [объект TiDOMNodeList]

[ИНФО] Длина: 1

Выход Android:

[INFO] [3,7225] Архив: [Ti.NodeList]

[INFO] [1,7226] Item: [KrollMethod item]

[INFO] [2,7228] Длина: 0 [INFO]

[235,7466] Библиотека попала в ловушку: JavaException: java.lang.NullPointerException: null


person Paresh Thakor    schedule 17.11.2011    source источник


Ответы (1)


Проверьте ссылку:

http://developer.appcelerator.com/question/128341/xml-parsing-failure-on-android-but-works-on-iphone#comment-104281

Для разбора XML с помощью:

var xml = Ti.XML.parseString(this.responseXML.toString());

xyz(languageCode, version, xml);

"этот.responseXML.documentElement". У него есть некоторые проблемы на Android (не знаю, сообщается об этом или нет). Обходной путь заключается в использовании метода «Ti.XML.parseString» для повторного анализа XML:.

person Paresh Thakor    schedule 17.11.2011