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

В момента разработвам модерно приложение за Windows, използвайки Foundation for Apps и cordova. Приложението се срива по много начини по време на навигация, понякога дори веднага след стартирането му.

Сривът е този

И не мога да го отстраня по никакъв начин.

Опитах да настроя window.onerror и WinJS.Application.onerror catch all функция без резултати. Очевидно сривът се случва на по-ниско ниво. Проверих също програмата за преглед на събития, но няма налична информация.

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

Какви са ми опциите тук?


person sPoz    schedule 24.04.2015    source източник
comment
На коя версия на ОС работите? Работите ли с прикачен инструмент за отстраняване на грешки в скриптове и виждате ли тази грешка, без да са засегнати изключения от скрипт? (също се уверете, че сте настроили VS да влиза, когато хвърля изключение от JS, а не да бъде оставено необработено, и опитайте да стартирате тези сценарии). Ако кажете „Да“ на този диалогов прозорец и позволите на собствения JIT дебъгер да се прикачи, какво представлява стека за извикване и кой код за изключение е той?   -  person Brandon Paddock    schedule 27.04.2015
comment
Windows 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 Symbol, за да получите пълен стек.   -  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, може да се наложи да опитате да отстранявате грешки срещу отдалечено устройство (вижте предложението на Kenneth тук: Защо приложението Cordova за Windows 8 причинява необработено изключение за win32, възникнало в wwahost. exe?)

person Mike Jones    schedule 09.06.2015
comment
Благодаря, Майк.. Открих този въпрос, защото страдам от същия проблем.. кликването върху неща в определени поръчки работи, а други просто се срива, както по-горе. Затворих DOM Explorer и той вече не се срива (по същия начин).. Съжалявам, че не мога да ви маркирам като отговор, но дадох +1 на вашето полезно предложение.. много благодаря - Брет - person Brett JB; 10.06.2015

Какво използвате за разработване на приложението? Инструментите на Visual Studio за Apache Cordova? Или 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 Windows, използвайки 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