Необработанное исключение в WWAHost в приложении Cordova с использованием Angular

В настоящее время я разрабатываю современное приложение для Windows, используя Foundation for Apps и Cordova. Приложение аварийно завершает работу во время навигации, иногда даже сразу после его запуска.

Авария вот такая

И я никак не могу его отладить.

Я пытался настроить функцию window.onerror и WinJS.Application.onerror, но безрезультатно. Судя по всему, сбой происходит на более низком уровне. Я также проверил средство просмотра событий, но никакой информации нет.

То, что происходит, по-видимому, похоже на этот вопрос: Как для отладки необработанного исключения win32 в приложении магазина WinJS Win8, которое, к сожалению, не решено.

Каковы мои варианты здесь?


person sPoz    schedule 24.04.2015    source источник
comment
На какой версии ОС вы это используете? Вы работаете с подключенным отладчиком сценариев и видите эту ошибку без каких-либо исключений сценария? (также убедитесь, что вы настроили VS на взлом, когда когда-либо исключение JS генерируется, а не остается необработанным, и попробуйте запустить эти сценарии). Если вы скажете «Да» этому диалоговому окну и позволите родному JIT-отладчику подключиться, что такое стек вызовов и какой это код исключения?   -  person Brandon Paddock    schedule 27.04.2015
comment
Виндовс 8.1. Ошибка бывает разной, в большинстве случаев это: Необработанное исключение по адресу 0x538448A7 (mshtml.dll) в WWAHost.exe: 0xC0000005: Местоположение чтения с нарушением прав доступа 0x00000038. Иногда это происходит даже при запуске приложения, иногда, когда я открываю инспектор DOM, иногда просто с помощью приложения. Другие ошибки JS не отображаются. Я пробовал как включить, так и отключить создание всех исключений JS без изменений.   -  person sPoz    schedule 27.04.2015
comment
Вы пытались подключить собственный отладчик и получить стек вызовов для исключения? Вы можете сделать это в VS, установив тип отладчика на Native или Native With Script. Возможно, вам потребуется включить загрузку символов с серверов символов MS, чтобы получить полный стек.   -  person Brandon Paddock    schedule 19.05.2015


Ответы (4)


У меня была такая же проблема с Visual Studio 2015, Windows 10 и Cordova 5.1.1, когда я переносил проект в другую среду разработки. Это происходит только в конфигурации сборки приложения Windows-x64 для локального компьютера.

После успешной сборки вскоре запускается окно приложения, после чего возникает исключение win32, как на скриншоте из sPoz. Каждый раз это воспроизводилось.

Я пытаюсь восстановить Visual Studio, а также проверил переменную среды из своего решения, как описано в эту статью Microsoft. Но мне не повезло.

Ничего не помогло, но просто откройте файл config.xml и измените целевую версию Windows с «Windows 10» на «Windows 8.1», чтобы решить проблему, и я смог запустить приложение без ошибок:

введите здесь описание изображения

После этого я могу вернуться к «Windows 10», и все в порядке. Это воспроизводилось на двух машинах разработчиков.

Я точно не знаю, был ли перемещенный проект источником проблемы, и, возможно, переписанный config.xml запускает какой-либо механизм перестроения.

person Bjoerg    schedule 14.09.2015

Скорее всего, вы сталкиваетесь с проблемой, связанной с ошибкой DOM Ex WWAHost.exe в Windows 8.1 (очевидно, исправлено в Win10). Существует обходной путь, который должен работать для большинства приложений; прежде чем щелкнуть мышью и получить исключение WWAHost.exe, закройте окно DOM Explorer. Это должно позволить вам выполнять отладку, нажимая точки останова и т. д. Если вам нужно использовать DOM Ex для цели Windows, вам может потребоваться попробовать отладку на удаленном устройстве (см. предложение Кеннета здесь: Почему приложение Cordova для Windows 8 вызывает необработанное исключение win32 в wwahost. экзешник?)

person Mike Jones    schedule 09.06.2015
comment
Спасибо, Майк .. Я нашел этот вопрос, потому что у меня та же проблема .. Щелчок по элементам в определенном порядке работает, а другие просто вылетают, как указано выше. Я закрыл проводник DOM, и он больше не вылетает (таким же образом). Извините, я не могу отметить вас как ответ, но я добавил +1 к вашему полезному предложению. Большое спасибо - Бретт - person Brett JB; 10.06.2015

Что вы используете для разработки приложения? Инструменты Visual Studio для Apache Cordova? Или Кордова с CLI? Если вы используете плагин, вы должны запустить сгенерированный проект WP для отладки. Отладка приложения WP в настоящее время не поддерживается плагином.

person Mehdi Lahlou    schedule 25.04.2015
comment
Я использую сгенерированный проект в Visual Studio 2013. - person sPoz; 25.04.2015
comment
Окей, ты используешь плагины? Если да, то можете ли вы их удалить? потому что, если исключение находится в коде C #, вы не можете обрабатывать ошибки - person Mehdi Lahlou; 25.04.2015
comment
Я и я попытаюсь удалить их. Но все они написаны на JS, так что я сомневаюсь, что это что-то изменит. - person sPoz; 27.04.2015

Я получал ту же ошибку во время разработки приложения для планшетов Cordova с использованием Visual Studio Enterprise 2015. До сих пор я пытался закрыть DOM-Explorer и использовать точки останова и консоль javascript. После этого при поиске проблем с javascript intellisense в Visual Studio я понял, что моя проблема устранена. Что я сделал, чтобы избавиться от этой проблемы, так это то, что:

  • Откройте Инструменты > Параметры
  • Выберите Текстовый редактор > Javascript > Intellisense > Ссылки.
  • Добавьте следующие ссылки ( angular.intellisense.js, domWeb.js, domWindows_8.1.js ).

Я не знаю, какие справочные файлы правильные, но с добавлением этих 3 справочных файлов моя проблема была решена.

person Ömer Burak KARATAŞ    schedule 16.12.2015