Visual Studio 2017 and Apache Cordova mobile apps | Andrés Zsögön

原文:Visual Studio 2017 and Apache Cordova mobile apps | Andrés Zsögön

以下是使用Microsoft Visual Studio 2017尝试使用适用于Android,iOS和Windows的HTML,CSS和JS 开发Apache Cordova移动应用程序时可能遇到的一些问题出于这些和其他原因,我更喜欢继续使用Visual Studio 2015,它没有提到任何问题。

不再支持Windows Phone 8.1

我最不喜欢Visual Studio 2017的一件事是您无法再编译Windows Phone 8应用程序。只有非常通用的 UWP(通用Windows平台)应用程序可以编译和部署,如平台定位文章中所述:

此版本不支持Windows Store 8.1和8.0以及Windows Phone 8.1和8.0的项目。要维护这些应用程序,请继续使用Visual Studio 2015。

这意味着随VS2017提供的UWP 10只能编译适用于Windows 10和Windows 10 Mobile的应用程序,但不能编译Windows Phone 8.目前仍有数百万台Windows Phone 8.1设备在使用,因此要保持它们与您之间的良好兼容性应用程序将确保您获得更多用户。

使用Visual Studio 2015   和Windows Phone 8.1 SDK,您可以通过在config.xml设计器中选择Windows目标版本:Windows 8.1来编译与Windows Phone 8.1和Windows 10 Mobile兼容的 UWP 

坚持使用Cordova 6.3.1工具集

自VS2017发布以来,Visual Studio中的Cordova 工具集一直停留在Cordova CLI 6.3.1中,并且未提供进一步的更新。这意味着你会遇到越来越过时的Cordova 6.3.1 CLI,以及旧版本的cordova-androidcordova-ios工具:

visual studio cordova工具集

VS2017 Cordova 6.3.1工具集。

但是,您可以使用全局安装的CLI版本,如Cordova 7.1.0

2017年视觉工作室的cordova 7.1.0

VS2017 Cordova 7.1.0工具集。

这种方法的问题在于,当您增加Cordova CLI和cordova-android版本时,您将开始获得越来越多的Visual Studio相关错误。例如:

  • 使用Cordova 6.5.0cordova-android 6.3.0时,一切都会完美运行。但是这个版本对于某些插件来说太旧了,比如phonegap-plugin-push
  • 使用Cordova 7.1.0cordova-android 6.3.0时,您可以构建和部署到设备和模拟器,但VS2017错误地报告状态栏上的Deploy失败没什么大不了的,部署到设备,模拟器和调试实际上工作正常。
  • 使用cordova-android 6.4.0或更高版本时,您的应用程序将不会部署到设备或模拟器这是因为在cordova-android 6.4.0中,APK输出路径不幸被更改,导致Visual Studio不再找到APK并假设构建失败。关于这个问题的报告已被视为IDE问题,换句话说,应该更新Visual Studio以解决此问题。你可以永远等待一个新的工具集发布,所以我不会指望它。
  • 每当您使用config.xml设计器中显示的选择框更改CLI版本时下次加载项目时可能会忘记该设置,因为config.xml未正确更新。有关处理此错误的更多信息,请阅读下一期。
  • 要使用Cordova 7.1.0为Android编译,您可能需要通过从Visual Studio 更改ANDROID_HOME设置来切换到Android SDK API 26 这会引入以下问题:不再检测到您的Android模拟器,也无法部署到模拟器(请参阅本页下方的详细问题)。

未保存选定的Cordova工具集

默认情况下,Visual Studio 2017将使用自己的Cordova 6.3.1工具集创建新的Apache Cordova项目如果将其更改为使用全局安装的Cordova版本,下次打开项目时会忘记此设置,并且您被邀请转换项目。

这是因为无论何时更改工具集,config.xml都未正确更新。要在项目中更改Cordova版本,请在“ 查看代码”模式下手动编辑config.xml 以找到:

<VS:toolsetVersion> 6.3.1 </ VS:toolsetVersion>
<engine name =“android”spec =“5.2.1”/>

并将其替换为全球安装的版本(在本例中为7.1.0)。还设置了一个较新的cordova-android版本(6.3.0是最后一个适用于Visual Studio的版本,之后Apache Cordova团队通过更改APK输出路径来打破它)。

<VS:toolsetVersion> 7.1.0 </ VS:toolsetVersion>
<engine name =“android”spec =“6.3.0”/>

保存config.xml并重新加载项目,将预先选择全局安装的版本,不会询问任何转换。

您可以在我在Stackoverflow 上发布的这个答案中找到有关此问题的更多详细信息

构建失败,因为需要更新的Android SDK

当您设法更改Cordova CLI和cordova-android版本时,您可能会遇到与Android SDK(API 25)相关的错误。Cordova 7.1.0需要Android SDK 26进行编译,因此您必须将Visual Studio中ANDROID_HOME设置设置为外部安装的Android SDK。您可以使用经典的Android SDK Manager获取和管理已安装的Android SDK 

android sdk经理

适用于Windows的Android SDK Manager。

此SDK管理器已被埋没,试图让更多开发人员迁移到Android Studio,后者具有内置的SDK管理器,但您仍然可以在此处获取它Android Studio的问题在于它的IDE缺乏对Apache Cordova应用程序的任何支持,不像Visual Studio提供了轻松创建,调试,部署和分发它们所需的所有工具。

更改ANDROID_HOME后无法部署到模拟器

每当您Tools for Apache Cordova设置中更改ANDROID_HOME路径(使用较新的Android API进行编译)时,您可能会注意到Deploy to Emulator选项已消失,而是替换为安装Google Android模拟器这可能非常令人沮丧。

Visual Studio ANDROID_HOME路径

在此处更改Visual Studio 2017 Android SDK路径会删除“ 部署到模拟器”选项。

不幸的是,将自定义ANDROID_HOME设置为使用较新的API会破坏Deploy to Google Android Emulator选项并替换它将安装Google Android Emulators当使用VS2017安装程序本身Tools for Apache Cordova提供的(越来越过时的)Android SDK API 25时,VS2017似乎只能部署到emulatos 

如何使用我自己的ANDROID_HOME然后部署到模拟器?

如果您坚持更改ANDROID_HOME设置,仍可以使用cordova emulate命令手动部署到模拟器

cordova run  -  emulator

但是,您将无法使用Visual Studio内置调试工具您仍然可以使用Chrome的远程调试与设备检查器,但这不会调试非Javascript插件。Visual Studio 2015上不存在此问题,它允许在正确部署到设备和模拟器时使用您自己的ANDROID_HOME设置。

如何使用更新的API手动更新内置API 25文件夹?

那太好了。但是,由于VS2017安装程序提供的Android SDK API 25的文件夹结构与Android SDK Manager创建的原始SDK结构非常不同,因此您不能简单地将API 25文件夹的内容替换为API 26中的内容以解决此问题。问题。尝试这可能会导致无法使用的SDK。

与Cordova,Visual Studio或Android仿真器相关的问题

有另一个问题?添加您的评论

我没有尝试过VS2017足够长的时间来找到所有与Cordova相关的问题。如果您遇到任何其他问题,请随时使用本页Disqus上的评论表单提交。如果我有时间,我会尽力帮助您或调查问题。

所有产品名称,徽标和品牌均为其各自所有者的财产。本网站使用的所有公司,产品和服务名称仅用于识别目的。使用这些名称,徽标和品牌并不意味着认可。

此条目发布在Apache CordovaVisual Studio on2018年5月12日

猜你喜欢

转载自www.cnblogs.com/lonelyxmas/p/10231765.html