Android 使用Eclipse和Phonegap/Cordova 3开发

Android 使用Eclipse和Phonegap/Cordova 3开发,android,eclipse,cordova,cordova-3,Android,Eclipse,Cordova,Cordova 3,文档似乎有点单薄,我向你保证我已经尝试在网上找到了,但是我真的不知道开发过程应该如何与phonegap和eclipse一起工作 我遵循了众多教程中的一个,并使用cordova命令行创建了Hello World示例。然后我添加了android平台并运行了构建。在那之后,我按照子目录platforms/android目录的指示,在eclipse中将androidy位作为一个项目添加到现有源代码中。这使我能够设置模拟器,并且一切都很好 我现在面临的问题是开发过程 我知道我必须编辑顶级文件,而不是ecl

文档似乎有点单薄,我向你保证我已经尝试在网上找到了,但是我真的不知道开发过程应该如何与phonegap和eclipse一起工作

我遵循了众多教程中的一个,并使用cordova命令行创建了Hello World示例。然后我添加了android平台并运行了构建。在那之后,我按照子目录platforms/android目录的指示,在eclipse中将androidy位作为一个项目添加到现有源代码中。这使我能够设置模拟器,并且一切都很好

我现在面临的问题是开发过程

我知道我必须编辑顶级文件,而不是eclipse中项目的资产目录中显示的文件,因为这些文件是使用“build”命令创建的。这些顶级文件不存在于我在eclipse中创建的项目中,因为它们位于项目根目录之上

所以,我的问题是。。。我可以使用eclipse以合理的方式开发这个项目吗

我现在正在做的是编辑android的www文件,然后将它们复制到树上,以将其提升到云构建中。这似乎很疯狂

有没有一种方法可以让真实的文件在eclipse中可用,这样我就可以开发它们,然后轻松地构建并部署到模拟器上

PS这是我的想象还是cordova的建造需要很长时间

解决方案


我在Android项目中添加了一个文件夹,它是指向根目录中www位置的链接。这在创建文件夹的高级选项下。

为此,必须使用两个不同的eclipse项目。 一个包含用于开发的myProject/www文件夹(我们称之为“顶级项目”),另一个用于您的特定平台项目(例如android,正如您已经做过的)

在顶级项目中,编写代码,如果愿意,甚至可以调试到一定程度(不需要cordova的函数)。然后保存并在CLI中键入
cordova prepare
。然后,您可以切换到android项目,点击刷新(F5)并运行模拟器/设备,查找bug,并进行android清单更改。如果要更改代码,请再次切换到顶级项目,并重新执行相同的操作

这似乎有点不舒服,对吧。然而,想想cordova不仅在android上开发,而且在ios、windows phone、blackberry上开发。。。要访问所有这些平台,您必须切换到多个ide。这样,在一个独立的项目中拥有顶级代码就容易多了

一些侧节点:

  • 执行此过程几次后,您将花费不超过2或3秒的时间来
    cordova prepare
    并切换项目。我想这没关系

  • 我自己不仅仅使用不同的eclipse项目,我甚至使用不同的eclipse安装。这对我来说似乎是更好的安排,因为它可以防止我混淆顶级和低级文件

  • 即使您只为android开发,也应该使用两个不同的项目,因为“cordova prepare”(或任何包含prepare、as build、simulate和run的cli命令)将覆盖/删除您的文件

  • 在我的安装中,使用CLI构建所花费的时间与在eclipse中所花费的时间相同。这是有道理的,因为我对两者使用相同的sdk。但是,在上面编写的过程中,不需要使用cli build命令

  • 如果您只使用android平台,并且不容易与一个项目中的同名文件混淆,那么您可以链接android项目中的myApp/www文件夹。在这种情况下,您将只有一个项目(这个答案的功劳归于stevemarvell本人,我只是为了完整性在这里添加这个)


  • 除上述解决方案外,我还创建了一个“外部工具”配置,用于运行phonegap实用程序,该实用程序具有“本地构建android”选项,并为我的Mac将环境路径变量设置为“/opt/local/bin:/usr/bin:/bin”。在那里,我安装了EclipseCDT工具,并使用其“LaunchGroup”功能从顶级项目运行外部工具,然后在特定于平台的项目上调用调试

    看来效果相当不错。不幸的是,他们的顶级项目不“记住”启动组的执行,所以每次我都必须从“调试”下拉列表中选择它。作为测试,我将顶级项目转换为JavaScript,但它似乎没有帮助,项目属性中的“运行/调试设置”都变灰了。

    请参见我的答案:


    为什么我使用Phonegap 3.0 CLI迁移到Netbeans。更适合我的工作流程。

    非常感谢您冗长而深思熟虑的回复。我已经采纳了你的策略,并且认为它是足够的。至少我现在知道我没有错过任何把戏。最让人困惑的是,cordova js文件不在顶层,尽管这只是一个麻烦,并不妨碍在浏览器中测试html5/jquery代码。我注意到在第一次之后构建时间减少了,这很好。@stevemarvell,不客气。然而,我想知道是否有些事情最终没有解决,因为你在最初接受了我的答案之后,没有接受我的答案……:)是的,这是一个公认的答案,但我认为我的答案更全面。但是,经过反思,我感觉很糟糕,因此将更新:)这里的协议有点新。事实上,您的解决方案也会起作用-我没有看到注释,抱歉;)我自己也会对链接(在一个项目中使用相同的samed文件)感到困惑,但如果你能处理好这一点,舒尔是一个简单的方法……自动化构建:右键单击项目->属性->构建器,创建一个新的(即Phonegap构建Android),从项目目录执行Phonegap本地构建Android。这将使得只需在eclipse中按debug/run按钮并开始调试成为可能。此外,重命名li可能更安全