我安装了VS 2015 Enterprise RC,我正在将部署在iOS和Android上的Cordova应用移植到Windows 8.1 Phone / Universal
在进行必要的更改后,我有一个应用程序在设备上显示启动画面后不久崩溃。
我在visual studio错误/输出窗口或设备上看不到任何错误消息。该应用程序消失了
任何人都可以提供一种方法来捕获有关VS中设备上的关键应用程序故障的信息,或者用于调试目的吗?
答案 0 :(得分:1)
根据我的经验,从platform/windows
目录调试解决方案更容易,但我不知道这对您的情况是否有帮助。
还有plugin有助于console.log
日志记录。
Windows Phone 8.1 / Universal Cordova应用程序中最流行的错误是使用不使用Winstore Jscompat library操作DOM的库。如果您正在使用Angular,Ember,Knockout或类似的东西,它会导致DOM上的第一次操作崩溃。
答案 1 :(得分:1)
我认为这是因为您遇到了当前调试器类型无法捕获的本机异常。在像c#和winjs项目这样的经典windows phone项目中,我们可以设置调试器类型以支持托管和本机。如果您可以通过启用本机调试器获得更多信息,我认为值得尝试。
默认情况下,对于Cordova项目,默认调试器类型仅为“脚本”。我们可以通过启用诊断构建日志找到它:工具 - >选项 - >项目和解决方案 - >改变" MSBuild项目构建输出详细程度"诊断。
然后让我们举个例子来展示我们能找到的东西:
创建一个新的黑色cordova项目。
将解决方案平台更改为Windows Phone(通用)并选择"模拟器8.1 WVGA 4英寸512MB"。
构建解决方案。然后让我们检查输出窗口中的构建日志。
搜索" debuggertype"在输出窗口中,我们将能够找到以下信息:
DebuggerFlavor = PhoneEmulator81Wvga4512
DebuggerType = Script
DebugSymbols = false
DebugSymbolsProjectOutputGroupDependsOn =
DefaultContentType = Default
DefaultReferenceGroup = Implicit (Apache Cordova)
DefineCommonReferenceSchemas =
DefineExplicitDefaults = true
我们可以看到DebuggerType设置为Script。这是继承自MSBuild中的全局设置。您还可以从Diagnostic构建输出日志中找到该文件的内容。
然后让我们看看我们如何改变它以捕获原生异常。转到项目文件夹并打开.jsproj.user文件。我们可以找到以下设置:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Windows Phone (Universal)'">
<DebuggerFlavor>PhoneEmulator81Wvga4512</DebuggerFlavor>
</PropertyGroup>
现在,将其更改为以下将更改调试器类型,您可以在构建日志中验证。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Windows Phone (Universal)'">
<DebuggerType>Mixed</DebuggerType>
<DebuggerFlavor>PhoneEmulator81Wvga4512</DebuggerFlavor>
</PropertyGroup>
然后,您可以再次运行您的应用程序,看它是否会在您的Visual Studio输出窗口中获取任何信息。
答案 2 :(得分:1)
Windows Phone收集转储文件中的所有崩溃数据。在以下位置激活此功能:
设置&gt;报告
之后,转储文件将在手机的以下文件夹中创建:
的WindowsPhone /电话/文档/调试/
您可以使用Visual Studio打开它们。