最近,Google收到了一条警告,要求升级我的应用以使用Cordova 3.5.1,因为之前的版本可能存在安全漏洞.我看到最新版本的Cordova是3.6,所以我不妨升级到那个.
我正在使用基于Eclipse的Android开发者工具来构建我的Android应用程序.我想做的就是用版本3.6替换Cordova 2.9.0,然后重建应用程序并将其上传到市场.
一年前我经历了所有这些事情,但我正在努力回顾我如何设置它的步骤. Eclipse界面不是直观且易于使用的.它是not even obvious how to open an existing project.此外,似乎Cordova已经改变,这不仅仅是替换现有的.jar文件.自从我上次处理这件事以来,情况发生了很大的变化.
如何在使用Google的Android开发工具(ADT)的情况下将Cordova升级到最新版本?具体来说,我想让现有的ADT项目使用新的Cordova版本.
解决方法:
更新的答案:
自2.9.0以来,一些重要的事情发生了变化因此,Cordova 2.9.0项目的结构与Cordova 3不兼容.
最重要的变化之一是在Cordova 3.0中,所有API都从框架移动到插件中.这意味着对于您使用的任何Cordova API,在3.0项目中,您需要在这些API可用之前向项目添加插件.例如,在Cordova 2.9.0中,Cordova Camera API内置于Cordova框架中,因此您可以在不向项目添加任何插件的情况下调用navigator.camera.getPicture(successCB, errorCB, options).从Cordova 3.0开始,您需要将the Cordova Camera plugin添加到项目中才能进行相同的调用.
仅使用Android Developer Tools无法从2.9.0升级到3.6.0.升级的方法不止一种,但我建议您按照官方文档中升级等级中的步骤进行操作.升级指南仅列出了增量步骤,如果您从2.9.0开始没有进行任何Cordova开发,这可能会令人困惑,所以这里是基于“升级Android”指南中定义的增量步骤的2.9.0到3.6.0摘要官方文件.
您需要完成几个步骤.
>备份您的原始项目,以防出现问题,您需要重新开始.如果安装了cordova 2.9.0,请创建一个新的空白项目.您可以使用此作为基线来查找使用diff工具添加的自定义资产.这可能在第4步中有所帮助.
>按照the official documentation中的说明安装cordova 3.6.0.
>使用项目的包名称和应用程序标题创建一个新的cordova项目:
cordova创建projectPath projectPackage projectName
>切换到项目目录并添加Android平台:
cd projectPath
cordova平台添加android
>将自定义项目资产从原始项目复制到新项目中.
一个. assets / www的内容不包括config.xml,cordova_plugins.js,cordova_plugins.json和cordova.js.
湾res / drawable *的内容
C.根据您的项目,您可能需要复制其他本机资产 – 但要小心覆盖文件 – 在某些情况下,您可能需要将自定义内容复制到新项目中的现有文件中,而不是覆盖它.如有疑问,请并排比较文件.
>安装您需要的任何“核心”插件.您需要确定项目使用的Cordova API,然后确定提供它们的插件.在大多数情况下,您应该可以参考Cordova 2.9.0 API Reference in the sidebar来查看哪个Cordova 2.9.0对象提供了您使用的API,然后将其与Cordova 3.6.0 Plugin APIs list中的相应插件进行匹配.在某些情况下,名称已更改,但是大多数情况下,找到你需要的插件应该是直截了当的.例如,要安装相机插件,您将在项目的根目录中运行以下命令(不是在平台/ android的android根目录中,而是在top-lvel根目录中):
cordova插件添加org.apache.cordova.camera
>处理自定义插件.如果您使用任何自定义插件,则需要更新到与Cordova 3.6.0兼容的较新版本.
>更新您的项目以考虑API更改.自2.9.0以来,一些API发生了很大变化 – 这可能需要您进行代码更改.
原始答案:
Here是描述如何从2.9.0升级到最新版本的官方文档.
不幸的是,自2.9.0以来,目录结构已经改变了几次,所以你必须手动移动一些文件.
如果您在遵循记录的步骤时遇到问题,请发表评论,我会尽力提供帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。