我正在将我的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。*;
就像我说的那样......没有科尔多瓦罐子......你能解决这个问题吗?
一下子就有几个问题......
所有相关问题都没有为我提供解决方案......
修改 我正在添加,更详细的步骤,就像我这一步: 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路径。我让这些答案对那些仍在寻找答案的人开放......但是不要指望我有任何答案或“接受正确答案”。
答案 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英雄的博客: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>
我留下这个答案,因为对于其他人来说这似乎有效(?)