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 ...
随机推荐
- 哈夫曼树的介绍 ---java实现
一. 什么是哈夫曼树 是一种带权路径长度最短的二叉树,也称最优二叉树 带权路径长度:WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln) N个权值Wi(i=1,2,...n)构 ...
- 展示C代码覆盖率的gcovr工具简单介绍及相关命令使用演示样例
(本人正在參加2015博客之星评选,诚邀你来投票,谢谢:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015/candida ...
- Anaconda的安装
Windows下Anaconda的安装和简单使用 Anaconda is a completely free Python distribution (including for commercial ...
- 14. Spring Boot MyBatis 连接数据库
转自:https://blog.csdn.net/catoop/article/details/50553714
- .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)
原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图: 以上可以看出项目结构可以划分为4大块,1是surging的核心底层,2,3,4都可以 ...
- Android, IOS 史上最强多语言国际化,不仅第一次会尾随系统,并且会保存用户的语言设置
劲爆消息,我提供源代码了.你能够先看完再下载.也能够先下载再看完, android源代码地址: https://github.com/hebiao6446/------Bluetooth-Androi ...
- js中的$符号代表什么
js中的$符号代表什么 一.总结 1.$:相当于document.getElementById(...) 2.$常用用法:每句话意思下面有,好东西 $("div p"); // ( ...
- Java与模式:装饰(Decorator)模式
装饰模式使用被装饰类的一个子类的实例.把client的调用委派到被装饰类,装饰模式的关键在于这样的扩展是全然透明的. 装饰模式在Java种使用也非常广泛,比方我们在又一次定义button.对话框等 ...
- 9、LCD驱动程序框架
linux-3.4.2\drivers\video\S3C2410fb.c(内核自带驱动程序) fbmem.c是LCD驱动程序顶层框架文件,是一个通用的文件,在初始化init函数中会注册一个字符设备, ...
- springboot(十四):springboot整合shiro-登录认证和权限管理(转)
springboot(十四):springboot整合shiro-登录认证和权限管理 .embody{ padding:10px 10px 10px; margin:0 -20px; border-b ...