使用 Visual Studio 2015 新模拟器调试 Cordova 应用程序 (android)

Debugging Cordova App (android) with Visual Studio 2015 New Emulator

我不确定这是我在做一些愚蠢的事情还是只是在做最前沿的事情.. 我正在开发一个简单的 Cordova 应用程序,但这是学术性的,因为我可以使用标准 'Wizzard produced' 默认应用程序重复这个问题。

我使用 VS2013 使用 Ripple 并偶尔使用真实设备让应用程序正常工作和调试。 我没有永久访问设备的权限,所以我想我会尝试使用模拟器的新 VS2015 CTP5。到目前为止,一切都很好。一切构建正常,应用程序确实部署到模拟器并启动。但是VS一直卡在'deploying'进程中,一直出不来。以至于我不得不'ctrl-Break'摆脱它。并且调试器永远不会启动。构建输出的最后几行是:

2>  Built the following apk(s):
2>      C:\Users\Brett\Documents\VisualStudioCordova\Projects\mblapp\mblapp\bld\Debug\platforms\android\ant-build\CordovaApp-debug.apk
2>  Using apk: `C:\Users\Brett\Documents\VisualStudioCordova\Projects\mblapp\mblapp\bld\Debug\platforms`\android\ant-build\CordovaApp-debug.apk
2>  Installing app on device...
2>  Launching application...
2>  LAUNCH SUCCESS
2>  Command finished with error code 0: `C:\Users\Brett\Documents\VisualStudioCordova\Projects\mblapp\mblapp\bld\Debug\platforms`\android\cordova\run.bat --nobuild,--target=169.254.138.177:5555,--debug
2>  

所以那里有一个错误,但我真的不明白它的意思..

好的,所以我回到了 VS2013,但现在 2015 年的安装发生了一些变化,现在使用 Ripple 它会在代码中意想不到的地方中断代码……不是断点……而且 javascript控制台在其下拉菜单中显示 'Paused at breakpoint'。我无法直接访问 2015 模拟器,但出于兴趣我在 2015 关闭后离开了模拟器 运行 并且可以使用 VS 2013 进行连接和调试..很好..但它不是开始调试的好方法..

我真的很喜欢新模拟器的外观,它似乎在 2013 上运行得很好。那么有人知道如何将 VS2013 部署到新模拟器吗? .. 我尝试了 运行 并取得了一些成功。但是我找不到 VS2015 在哪里隐藏了它的 VHD 文件..

或者,有没有人知道为什么 VS2015 可能无法正确部署。我很乐意使用一个有效的解决方案。只是现在我坚持不前进,它卸载 2015 并可能重新安装 2013 到回去... 非常感谢。

好的..我将此作为答案发布,因为它确实处理了其中的一部分..我确实有点挣扎,所以它可能会对其他人有所帮助。 运行 来自 VS2013 的模拟器。 您需要前往文件夹

C:\Program Files (x86)\Microsoft Visual Studio Emulator for Android.0

模拟器的安装位置。从 VS2015 中至少有一次 运行,它创建了一个名为 vsemu.vhd 和 vsemu.sdcard.vhd 的文件。将这两个文件复制到我使用的同一文件夹中的类似文件 'myemu'。 然后启动模拟器我用目标创建了一个简单的快捷方式 属性:

"C:\Program Files (x86)\Microsoft Visual Studio Emulator for Android.0\XDE.exe" /vhd bretts.vhd /video 1080x1920

这也设置了分辨率。您可以使用以下方法找到所有启动标志等:

...XDE /?

我还不确定,但我认为它在 sdcard 文件中存储了各种应用程序快捷方式。虽然我不敢发誓。如果那里有什么变化,我会重新发布。

好的调试.. 我启动了 VS2013 并将调试目标设置为 'Device'。这工作正常..到目前为止。

我仍然很想知道为什么 2015 没有正确部署,现在我只是假设它是最前沿的 'bleeding' 部分。 干杯

Visual Studio 2015 CTP5 中存在一个已知问题,Cordova 项目部署到 Android 的 Visual Studio 模拟器。该问题将在下一个版本中解决。

同时,这里有一些可以尝试的解决方法:

  1. 在您的计算机中搜索 Microsoft.VisualStudio.MultiDeviceHybridApps.dll。将有两个副本——一个在 "Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Emulator for Android\"(dll 的 VS Emulator 版本)下,另一个在 "Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\" 下的另一个文件夹中(文件夹名称不同,但它总是一些随机哈希;这是dll 的 Cordova 版本)。关闭 VS2015 并将 Emulator for Android 文件夹中的 Microsoft.VisualStudio.MultiDeviceHybridApps.dll 替换为 Cordova 文件夹中的那个(删除 Emulator 一个,复制 Cordova 一个,然后将其粘贴到 Emulator 文件夹中)。然后转到"C:\Users\your username\AppData\Local\Microsoft\VisualStudio.0\Extensions"并删除此文件夹的内容。

  2. 新建Visual C++ Native-Activity Application (File > New > Project, under Installed\Templates\Visual C++\Cross Platform\Native-Activity Application (Android)) 和 运行 它,然后 return 到你的 Cordova 项目。

  3. 重新安装 CTP5 和 Android 的 Visual Studio 模拟器,然后重新安装。

希望对您有所帮助!

Webkit 开发人员(Android 和 iOS)的另一个解决方法,Chrome 远程调试器,check out here

有了这个你就可以像往常一样调试了,这确实适用于 vs2015 ctp5 的模拟器!