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

4
我不确定这是我做了一些愚蠢的事情还是遇到了技术的尖端问题。我正在开发一个简单的Cordova应用程序,但这是学术性的,因为我可以重复使用标准的“向导生成”的默认应用程序来解决此问题。
我曾经使用Ripple和真实设备在VS2013中很好地工作和调试过这个应用程序。由于我没有永久访问设备,所以我想尝试使用模拟器的新VS2015 CTP5。到目前为止一切都很好,所有构建都可以,应用程序也会被部署到模拟器上并启动。然而,VS卡在“部署”过程中,并且永远无法退出。我必须通过“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控制台在其下拉菜单中显示“在断点处暂停”。我无法直接访问2015模拟器,但出于兴趣,我在2015关闭后保持模拟器运行,并且可以使用VS 2013进行连接和调试。很好...但这不是开始调试的好方法。
我真的很喜欢新模拟器的外观,它似乎与2013非常搭配,并且有人知道如何使VS2013部署到新模拟器吗?...我尝试运行它并取得了一些成功。但我找不到VS2015隐藏其VHD文件的位置。
或者,是否有人知道为什么VS2015可能无法正确部署...我乐意使用有效的解决方案...只是现在我被卡住了,不能前进,而且卸载2015和重新安装2013是回去的可信方式...非常感谢。
3个回答

1

好的..我将此发布为答案,因为它涉及其中一部分..而且我确实有点困难,所以它可能会帮助其他人。 从VS2013运行模拟器。 您需要进入安装了模拟器的文件夹

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

已经至少从VS2015运行过一次后,它创建了一个名为vsemu.vhd和vsemu.sdcard.vhd的文件。将这两个文件都复制到同一文件夹中的类似文件夹中,我使用“myemu”。 然后,我创建了一个简单的快捷方式来启动模拟器,其中包含目标属性:

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

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

...XDE /?

我还不确定,但我认为它将各种应用程序快捷方式存储在sdcard文件中..虽然我不能保证。如果有变化,我会重新发布。

好的,调试中...我启动了VS2013,并将调试目标设置为“设备”。这个很好用...到目前为止。

我仍然很想知道为什么2015年无法正确部署,但现在我只能假设它是“激进边缘”的一部分。谢谢。


0

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

与此同时,以下是一些可尝试的解决方法:

  1. 在您的计算机上搜索 Microsoft.VisualStudio.MultiDeviceHybridApps.dll。会有两个副本--一个在“Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Emulator for Android\”下(VS模拟器版本的dll),另一个在“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\14.0\Extensions”并删除此文件夹的内容。

  2. 创建一个新的Visual C++ Native-Activity应用程序(文件>新建>项目,在Installed\Templates\Visual C++\Cross Platform\Native-Activity Application (Android)下),运行它,然后返回到您的Cordova项目。

  3. 重新安装CTP5和Visual Studio模拟器for Android并重新安装。

希望这能有所帮助!

到目前为止,约翰,谢谢你。我尝试了1..发现不只有一个附加的“随机哈希”文件夹,而是3个..除了模拟器之外。看着这些,其中1个与模拟器相同大小,另外两个则较小,但彼此大小相同,均为14,872字节..因此,我将其中一个放在模拟器位置,因为它更不同。
  • 不幸的是,这并没有起作用,所以我想尝试您的第二个选项。 我发现我没有安装那个C++模板,也没有在网上找到它..所以只能选择第三个选项。
- Brett JB
抱歉..上一条评论已经用完字符了:) 我会尝试第三个选项,但这需要我一些时间..但感谢你们迄今为止的帮助。很高兴看到你们至少在关注这个领域。我会在几天后回来,等我有机会重新安装后。 顺便问一下..有没有参考/指针可以让新模拟器能够在我的主机上被Fiddler嗅探到。Win Phone版本有很多相关资料,但Android版本还没有? 谢谢,Brett - Brett JB
所以我尝试了你提供的所有选项,但都没能让我通过部署阶段。应用程序已部署到模拟器并正常运行,但是我设置的断点从未被触发。 - VeldMuijz

0

对于 Webkit 开发人员(Android 和 iOS),还有另一种解决方法,即使用 Chrome 远程调试工具(在此处查看)

通过这个工具,您可以像平常一样进行调试,而且它也适用于 vs2015 ctp5 的模拟器!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接