【问题标题】:Upgrade to phonegap 3.3.0升级到phonegap 3.3.0
【发布时间】:2014-01-04 16:46:28
【问题描述】:

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

这是一个 android 项目,但很快也会成为 ios

但是,我为此苦苦挣扎了几天,仍然没有工作代码。

我已经这样做了:

安装了 phonegap 并创建了一个像手册一样的新项目:http://phonegap.com/install/

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

但无论我做什么......我都觉得这很烦人:

初始化 Cordova 时出错:找不到类

因为我曾经在 eclipse 中运行它并使用这个调试控制台(并且没有找到如何从 cli 中进行调试......还有一些调查要做),我试图让它在日食。

但是那里没有科尔多瓦罐子,我在任何地方都找不到。 我以前在构建路径中添加了cordova-2.9.0.jar,但是没有cordova-3.3.0.jar。 我看到了一个关于自己创建它的答案:但这后来被评论为不是正确的方式(因为在没有 phonegap 文档中提到了这一点......我无法想象那是方式)

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

所以就像我说的......没有科尔多瓦罐......你如何解决这个问题?

一下子就问了几个问题...

  1. 为了获得更好的调试效果:如何在 Eclipse 中实现此功能
  2. 为什么会出现此错误...找不到类(可能与 丢失的罐子)

所有相关问题都没有为我提供解决方案...

编辑 我只是要添加更详细的步骤,就像我执行此步骤一样: 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

但仍然像以前一样给出错误。 而且在eclipse中还需要添加cordova jar,找不到了..

编辑 2

我创建了一个新项目,只是想看看将它添加到 eclipse 时发生了什么......它似乎工作。所以我从 ecplise... 中删除了该项目并添加了它(floowing the phonegap docs for thsi: new android project; Add from existing code)。现在它在文件夹platforms/CordovaLib/bin 中创建一个名为-cordova-lib.jar 的新jar

这似乎适用于 eclipse...在 cli run 命令中仍然存在相同的错误。但是现在我可以尝试从 eclipse 运行它并了解更多信息......(我会在发现错误后立即发布)

编辑 3

在eclipse中运行会报错(奇怪的是这个在phonegap的-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文件....

2014 年 1 月 16 日编辑

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

2014 年 1 月 21 日编辑 重要说明(请参阅很多关于此的问题):蓝图 www 文件夹中的 config.xml 与 phonegap 文档中描述的不同。它有另一个模式,并且是每个平台的 config.xml 的蓝图,以及许多其他东西和文件(android 清单 xml 文件、图标等)。不幸的是,我还没有在 phonegap 文档中找到这个 config.xml 文件的正确描述(除了架构)(只是平台相关目标 config.xml 文件的一个很好的描述)。他们为一个非常不同的文件选择相同的名称非常令人困惑......

2014 年 2 月 12 日编辑 这可能会有所帮助......因为我仍然无法在 phonegap 页面上找到这个所谓的蓝图 config.xml 的正确描述:https://github.com/phonegap/phonegap-start/blob/master/www/config.xml

2014 年 5 月 5 日编辑

由于 phonegap 中的所有问题,phonegap 背后原理的好处对我来说已经消失了。 (我仍然相信潜在的phonegap可能是解决方案......但现在还为时过早)。所以我很抱歉我不得不离开phonegap路径。我让这个答案开放给那些仍在寻找答案的人......但不要指望我有任何答案或“接受正确答案”。

【问题讨论】:

  • 而且,每当您投反对票时,请礼貌地添加评论,说明您为什么反对这个问题。
  • 对不起,如果这个问题看起来像一个教程......但仍在为 phonegap 3.x 的新方式而苦苦挣扎

标签: android eclipse cordova


【解决方案1】:

因为它一直抱怨找不到类,我怀疑这是关于插件类的。所以我将它们全部删除并重新安装,现在它正在工作。

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

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

对于所有安装,我都这样做了(我找不到 * 来一次全部卸载)

phonegap plugin remove org.apache.cordova.device

然后我重新安装了它们,所以对于所有插件:

phonegap plugin add org.apache.cordova.device

这对我有用....

编辑

顺便说一句,几天后我发现万一你在eclipse中运行东西。您应该添加 2 个项目。完整项目之一(作为一般项目,不是android)。您可以在此处编辑蓝图 WWW 文件夹中的代码。编辑后,您运行 cli(命令行界面)命令:“cordova build”,然后您可以从第二个项目运行它(您将平台/android 文件夹添加为 android 项目,使用从现有代码添加)。

【讨论】:

    【解决方案2】:

    顺便说一句,在解决了这个问题之后...我尝试了我的 phonegap 项目的全新签出是否可以在一个全新的文件夹中工作。

    因此我使用了一个小 bash 文件来执行此操作:(在您刚刚克隆的文件夹中的 git clone 命令之后运行):

    • 卸载所有插件...(我复制了列表的输出并添加了phonegap插件删除)
    • 安装所有插件...
    • phonegap 运行安卓

    又沮丧又收到了同样的信息....

    我找到了一个 phonegap 英雄的博客:http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/

    特别是一句话:他创建了一个安装插件的钩子......但钩子是:

    after_platform_add`

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

    phonegap run android after 
    

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

    在我的 bash 文件中安装插件之前,我插入了一个构建命令(这也添加了平台),现在它可以工作了。

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

    【讨论】:

      【解决方案3】:

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

      这个错误:

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

      带我去:

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

      现在看来您必须更改 phonegap create 生成的代码!!

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

      但是...这对我没有帮助,仍然是同样的错误。

      所以我把它改回:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-07
        • 2015-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多