升级到phonegap 3.3.0

时间:2014-01-04 16:46:28

标签: android eclipse cordova

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

这是关于一个Android项目,但很快就会成为ios

但是,我几天都在挣扎,但仍然没有工作代码。

我做到了:

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

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

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

  

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

因为我曾经在eclipse中运行它并且使用这个调试控制台(并且没有找到如何从cli工作到底工作......还有更多的调查要做),我试图让它在蚀。

但在那里,它没有cordova jar,我无法在任何地方找到它。 我曾经将cordova-2.9.0.jar添加到构建路径,但是没有cordova-3.3.0.jar。 我看到了一个答案,你可以创造它,但后来这被认为不是正确的方式(因为在没有电话档文件的情况下这是提到的......我无法想象那就是这样)

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

就像我说的那样......没有科尔多瓦罐子......你能解决这个问题吗?

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

  1. 要获得更好的调试:我如何在eclipse中使用
  2. 为什么我会收到这个错误...找不到类(可能与...有关) 丢失的罐子)
  3. 所有相关问题都没有为我提供解决方案......

    修改 我正在添加,更详细的步骤,就像我这一步: 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 jar ..

    修改2

    我创建了一个新项目,只是为了看看将这个添加到eclipse时发生了什么......它似乎有效。所以我从ecplise中删除了这个项目...并添加了它(为thsi提供了phonegap文档:新的android项目;从现有代码中添加)。现在它在文件夹platforms / CordovaLib / bin中创建一个名为 - cordova-lib.jar的新jar

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

    编辑3

    在eclipse中运行它会显示错误(奇怪的是,它没有显示在-g模式的phonegap中):

    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-description

    EDIT 21-jan-2014 重要提示(请参阅许多有关此问题的问题):蓝图www文件夹中的config.xml与phonegap文档中描述的不同。它有另一个模式,并且是每个平台的config.xml的蓝图,作为许多其他的东西和文件(androoid清单xml文件,图标等)。不幸的是,我还没有在phonegap文档中找到这个config.xml文件的正确描述(除了模式之外)(只是平台相关目标config.xml文件的一个很好的描述)。他们为一个非常不同的文件选择相同的名称是非常令人困惑的......

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

    编辑2014年5月5日

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

3 个答案:

答案 0 :(得分:4)

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

删除所有插件并重新安装

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

这对我来说很有用......

修改

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

答案 1 :(得分:2)

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

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

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

并且沮丧得到了同样的信息......

我找到了一个关于其中一个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文件)。

答案 2 :(得分:0)

这个页面似乎解释了它(我只能通过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>

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