升级到phonegap 3.3.0

我正在将我的phonegap项目从phonegap 2.9.0升级到最新的,phonegap 3.3.0。 因为它有很大的改进。

这是关于一个android项目,但很快也是ios

不过,我几天还在苦苦挣扎,而且还没有正式的代码。

我已经这样做了:

安装phonegap和creted一个新的项目,如手册: http ://phonegap.com/install/

在此之后,我慢慢地将旧的代码插入到www文件夹中,并以新的3.0方式安装插件。

但是无论我做什么…我都感到烦恼:

初始化Cordova时出错:未find类

因为我曾经在eclipse中运行它,并使用这个debugging控制台(并没有find如何得到debugging从cli工作…一些更多的调查做那里),我试图让它在eclipse中工作。

但在那里,它没有cordova瓶,我无法find任何地方。 我曾经将cordova-2.9.0.jar添加到构buildpath,但没有cordova-3.3.0.jar。 我看到了一个答案,可以随便创build它12,但是后来这个答案并不是正确的方法(因为在没有提及的手机文档中提到过…我无法想象这就是这样)

在eclipse中,这是导致错误:import org.apache.cordova。*;

所以就像我说的…没有cordovajar子…你能解决这个问题吗?

所以一下子就问几个问题

  1. 为了得到更好的debugging:我如何得到这个在eclipse中的工作
  2. 为什么我得到这个错误…没有find类(可能与缺less的jar有关)

没有一个相关的问题给我一个解决scheme…

编辑我刚刚添加,更详细的步骤,就像我浮动这一步: http ://docs.phonegap.com/en/3.3.0/guide_cli_index.md.html#The%20Command-Line%20Interface

但比我注意到…这个命令:

sudo npm install -g cordova

我以为我做了,但我做了:

sudo npm install -g phonegap

但这并没有什么区别。

运行:`

phonegap运行android -V –device

`得到:

[phonegap] detecting Android SDK environment... [phonegap] using the local environment [phonegap] compiling Android... [phonegap] Generating config.xml from defaults for platform "android" [phonegap] Compiling app on platform "android" via command "/Path to my app/platforms/android/cordova/build" [phonegap] Platform "android" compiled successfully. [phonegap] successfully compiled Android app [phonegap] installing app onto device [phonegap] Generating config.xml from defaults for platform "android" [phonegap] Running app on platform "android" via command "/Path to my app/platforms/android/cordova/run" --device [phonegap] Platform "android" ran successfully 

但仍像以前一样给出错误。 在日食仍然需要添加cordova瓶,这是无处可寻的..

编辑2

我创build了一个新的项目,只是为了看看发生了什么事,当它添加到日食..它似乎工作。 所以我从ecplise中删除了项目…并添加了它(为新的android项目添加phonegap文档;从现有代码添加)。 现在它在文件夹平台/ CordovaLib / bin中创build一个名为 – cordova-lib.jar的新jar

这似乎工作日食…仍然在cli运行命令相同的错误。 但是现在我可以尝试从eclipse运行它,并找出更多…(我会尽快发现它是什么错误)

编辑3

在eclipse中运行它显示错误(奇怪的是,这不会显示在手机的-V模式):

 01-05 09:04:16.557: D/CordovaLog(698): file:///android_asset/www/phonegap.js: Line 1544 : Could not find cordova.js script tag. Plugin loading may fail. 01-05 09:04:16.567: I/Web Console(698): Could not find cordova.js script tag. Plugin loading may fail. at file:///android_asset/www/phonegap.js:1544 

但为什么不是这个js文件呢….

编辑16-Jan-2014

这也成为一个受欢迎的问题。 所以我不是唯一一个挣扎与phonegap 3.x这里还有另一个尚未解决的问题: https ://stackoverflow.com/questions/20953653/config-xml-phonegap-3-3-0-ignores-name-and -描述

编辑21-jan-2014重要注意事项(请参阅关于此的许多问题):蓝图www文件夹中的config.xml与phonegap文档中描述的不同。 它有另外一个模式,并且是每个平台的config.xml和许多其他的东西和文件(androoid manifest xml文件,图标等)的蓝图。 不幸的是,我还没有find这个config.xml文件的正确描述(除了模式之外)(在平台相关的目标config.xml文件中只有一个很好的描述)。 这是非常混乱,他们select一个非常不同的文件相同的名称…

编辑12-feb-2014这可能是有益的…因为我仍然无法find这个所谓的blueprint config.xml在phonegap页面上的正确描述: https : //github.com/phonegap/phonegap-start/blob/主/ WWW / config.xml中

编辑5月5日2014年

由于phonegap中的所有问题,phonegap背后原理的好处已经没有了。 (我仍然相信潜在的电话可以是解决scheme…但现在是过早的)。 所以我很抱歉,我不得不离开phonegappath。 我让这个答案为仍在寻找答案的人打开……但是不要指望我有任何答案或“接受正确答案”。

Solutions Collecting From Web of "升级到phonegap 3.3.0"

因为它一直抱怨没有find类,所以我怀疑这是关于插件类的。 所以我把他们都删除了,重新排列了他们,现在正在工作。

删除所有插件并重新安装它们

 phonegap plugin list [phonegap] org.apache.cordova.camera [phonegap] org.apache.cordova.console [phonegap] org.apache.cordova.device [phonegap] org.apache.cordova.device-motion [phonegap] org.apache.cordova.device-orientation [phonegap] org.apache.cordova.dialogs [phonegap] org.apache.cordova.file [phonegap] org.apache.cordova.file-transfer [phonegap] org.apache.cordova.geolocation [phonegap] org.apache.cordova.inappbrowser [phonegap] org.apache.cordova.media [phonegap] org.apache.cordova.media-capture [phonegap] org.apache.cordova.network-information [phonegap] org.apache.cordova.splashscreen phonegap plugin help 

对于所有安装我做到了这一点(我无法find一个*一次全部卸载)

 phonegap plugin remove org.apache.cordova.device 

之后我重新安装了它们,所有插件

 phonegap plugin add org.apache.cordova.device 

这为我做了诡计….

编辑

顺便说一下,几天后,我发现,如果你在日食中运行的东西。 你应该添加2个项目。 其中一个完整的项目(作为一个普通的项目,而不是android)。 在那里你可以编辑蓝色的WWW文件夹中的代码。 编辑完成后,运行cli(命令行界面)命令:'cordova build',然后从第二个项目(使用现有代码中的add添加platforms / android文件夹作为android项目)运行它。

顺便说一句,在解决了这个问题之后…我尝试了一个全新的结账手机工程是否在一个完整的全新的新文件夹中工作。

因此,我使用了一个小小的bash文件来完成这个工作(在克隆的文件夹中的git clone命令之后运行):

  • unistall所有插件…(我复制列表的输出,并添加phonegap插件删除)
  • 安装所有插件…
  • phonegap运行android

和沮丧再次得到相同的消息….

比我发现了一个电话英雄的博客: http ://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/

特别是有一句话:他创build了一个安装插件的钩子,但钩子是:

after_platform_add`

这意味着我的订单是错误的….结帐后,没有平台添加,这是在:

 phonegap run android after 

所以在平台添加之前安装插件似乎不工作!

我在我的bash文件中安装插件之前插入了一个命令来build立(这也增加了平台),现在它工作。

但更好:在上面的链接中使用Holly Schinsky提出的钩子…这适用于所有平台,而不仅仅是在Ubuntu(我的bash文件)。

那么这个页面似乎解释了它(我只能通过eclipse得到这个答案,命令行界面(CLI)从来没有给我任何警告。

这个错误:

 Could not find cordova.js script tag. Plugin loading may fail 

带领我:

https://github.com/phonegap/phonegap-cli/issues/134

现在看来你必须改变由phonegap生成的代码!

 <!-- <script type="text/javascript" src="phonegap.js"></script> --> <script type="text/javascript" src="cordova.js"></script> 

然而…这不能帮助我,还是一样的错误。

所以我把它改回到:

 <script type="text/javascript" src="phonegap.js"></script> 

我留下这个答案,因为对于其他人来说,这似乎工作(?)