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-android和cordova-ios工具:
VS2017 Cordova 6.3.1工具集。
但是,您可以使用全局安装的CLI版本,如Cordova 7.1.0:
VS2017 Cordova 7.1.0工具集。
这种方法的问题在于,当您增加Cordova CLI和cordova-android版本时,您将开始获得越来越多的Visual Studio相关错误。例如:
- 使用Cordova 6.5.0和cordova-android 6.3.0时,一切都会完美运行。但是这个版本对于某些插件来说太旧了,比如phonegap-plugin-push。
- 使用Cordova 7.1.0和cordova-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 :
适用于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 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仿真器相关的问题
- 使用Android SDK Manager安装时运行Android 8或更新模拟器的问题:使用不带Android Studio的Android 8和9模拟器
- 从Visual Studio for Windows使用远程代理为macOS 运行或部署iOS应用程序的问题:从Visual Studio for Windows 构建Cordova iOS应用程序
有另一个问题?添加您的评论
我没有尝试过VS2017足够长的时间来找到所有与Cordova相关的问题。如果您遇到任何其他问题,请随时使用本页Disqus上的评论表单提交。如果我有时间,我会尽力帮助您或调查问题。
所有产品名称,徽标和品牌均为其各自所有者的财产。本网站使用的所有公司,产品和服务名称仅用于识别目的。使用这些名称,徽标和品牌并不意味着认可。
此条目发布在Apache Cordova,Visual Studio on2018年5月12日。
Visual Studio 2017 and Apache Cordova mobile apps | Andrés Zsögön的更多相关文章
- Install Visual Studio Tools for Apache Cordova
Install Visual Studio Tools for Apache Cordova Visual Studio 2013 This article refers to the Visua ...
- Visual Studio 2015 和 Apache Cordova 跨平台开发入门(一)
基于 Windows 10 的 Visual Studio 2015 跨平台的应用开发主要分为基于Visual Studio 安装 Xamarin 扩展的跨Android.iOS 和 Windows的 ...
- 配置 Visual Studio Tools for Apache Cordova
原文:配置 Visual Studio Tools for Apache Cordova 1.连接地址 https://msdn.microsoft.com/zh-cn/library/vs/alm/ ...
- Visual Studio 2015 和 Apache Cordova 跨平台开发入门
原文:Visual Studio 2015 和 Apache Cordova 跨平台开发入门(一) 基于 Windows 10 的 Visual Studio 2015 跨平台的应用开发主要分为基于V ...
- Visual Studio 2015 和 Apache Cordova
英文原版:http://www.codeproject.com/Articles/860150/Visual-Studio-and-Apache-Cordova 在开始前,问一下自己下面这些问题: 熟 ...
- 在 Visual Studio中 使用Apache Cordova 开发安卓、iOS程序(自定义图标和闪屏)
方法1 1台安装有linux的电脑,虚拟机也行,并安装imagemagick软件包.我用的是linux mint,直接在软件管理器中安装即可 把https://github.com/shamork/c ...
- 最强 IDE Visual Studio 2017 正式版发布
Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试.实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航.IntelliSense.重构.代码修复和调试等等 ...
- 终于等到你,最强 IDE Visual Studio 2017 正式版发布
Visual Studio 2017 正式版发布,该版本不仅添加了实时单元测试.实时架构依赖关系验证等新特性,还对许多实用功能进行了改进,如代码导航.IntelliSense.重构.代码修复和调试等等 ...
- Visual Studio 2017 发布 附带下载地址
链接: https://pan.baidu.com/s/1kFjGwyj5HwabvmJKiyLF_g 提取码: 关注公众号[GitHubCN]回复获取 winform框架源码-Devexpre ...
随机推荐
- usr/bin/mysqladmin: refresh failed; error: 'Unknown error'
debian wheezy 升级后, 由于授权错误, 导致password给改动, 在debian的mysql safe下也无法进入. 我在/etc/mysql/my.cnf 里面已经改动了bin ...
- net基础题
1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保 ...
- CSS笔记 - fgm练习 - 鼠标移入移出div显示隐藏 CSS样式部分
问题总结: 1. checkbox和下面隐藏的div对齐,是在清除了默认样式的前提下,而不需要额外设置float: left; 2. 隐藏的div这里不需要专门设置宽高.居中,是靠内容和padding ...
- iCarousel——在iOS和Mac OS应用中实现3D CoverFlow旋转木马效果的开源类库
前言 iCarousel一个简单.可高度定制的3D CoverFlow开源类库,旨在简化在 iPhone, iPad和Mac OS中生成各种类型的cover flow(视图切换)效果(分页.滚动视图) ...
- 洛谷—— P1017 进制转换
https://www.luogu.org/problem/show?pid=1017#sub 题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1) ...
- EL表达式.md
操作符 描述 . 访问一个Bean属性或者一个映射条目 [] 访问一个数组或者链表的元素 ( ) 组织一个子表达式以改变优先级 + 加 - 减或负 * 乘 / or div 除 % or mod 取模 ...
- JAVA初始开发环境搭建
上午想在一台新电脑上搭建java开发环境,在没有之前备份的情况下,单靠网络还真有点麻烦.最主要的原因是貌似在我当前的网络环境下jdk无法下载,官网这个链接半天打不开,http://www.oracle ...
- 22、在Ubuntu 14.0上使用韦东山IP2977测试总结(未成功)
1. 去www.kernel.org下载同版本的内核(与Ubuntu 14.0) 解压后把drivers/media/video/uvc目录取出(发现我的3.13版本的在drivers\media\u ...
- 【note】缩写词
CoE CANopen EtherCAT应用程序概要文件CANopen™是一个注冊商标的能够自己主动化汽车集团..纽伦堡.德国CiA402CANopen™驱动器配置文件里指定的IEC 61800-7- ...
- angular表单经验分享
原文 https://www.jianshu.com/p/af359bd04f32 大纲 1.表单的名字不可以和传入的值的名字相同 2.在模板驱动表单的时候要使用angular表单的验证功能,需要将n ...