如何在Android Developer Tools中将Cordova 2.9.0升级到3.6?

时间:2014-10-02 06:03:12

标签: android eclipse cordova

最近,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版本。

1 个答案:

答案 0 :(得分:6)

更新回答:

自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开发人员工具无法从2.9.0升级到3.6.0。升级的方法不止一种,但我建议您按照官方文档中升级等级中的步骤进行操作。升级指南仅列出了增量步骤,如果您从2.9.0开始没有进行任何Cordova开发,这可能会令人困惑,所以这里是基于“升级Android”指南中定义的增量步骤的2.9.0到3.6.0摘要官方文件。

您需要完成几个步骤。

  1. 备份您的原始项目,以防出现问题,您需要重新开始。如果安装了cordova 2.9.0,请创建一个新的空白项目。您可以使用此作为基线来查找使用diff工具添加的自定义资产。这可能在步骤4中有所帮助。

  2. 按照the official documentation中的说明安装cordova 3.6.0。

  3. 使用项目的包名称和应用程序名称创建一个新的cordova项目:

  4. cordova create projectPath projectPackage projectName

    1. 切换到项目目录并添加Android平台:
    2. cd projectPath cordova platform add android

      1. 将自定义项目资源从原始项目复制到新项目中 一个。 assets / www的内容不包括config.xml,cordova_plugins.js,cordova_plugins.json和cordova.js。
        湾res / drawable的内容*
        C。根据您的项目,您可能需要复制其他本机资产 - 但要小心覆盖文件 - 在某些情况下,您可能需要将自定义内容复制到新项目中的现有文件中,而不是覆盖它。如有疑问,请并排比较文件。

      2. 安装您需要的所有“核心”插件。您需要确定项目使用的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根目录中):

      3. cordova plugin add org.apache.cordova.camera

        1. 处理自定义插件。如果您使用任何自定义插件,则需要更新到与Cordova 3.6.0兼容的较新版本。

        2. 更新您的项目以考虑API更改。自2.9.0以来,一些API发生了很大变化 - 这可能需要您进行代码更改。


        3. 原始回答: Here是描述如何从2.9.0升级到最新版本的官方文档。

          不幸的是,自2.9.0以来,目录结构已经改变了几次,所以你必须手动移动一些文件。

          如果您在遵循记录的步骤时遇到问题,请发表评论并尝试提供帮助。