【问题标题】:why $cordova prepare when use a new phonegap-cordova api(plugin)为什么在使用新的 phonegap-cordova api(plugin) 时要准备 $cordova
【发布时间】:2014-02-14 13:50:53
【问题描述】:

我是 phonegap、cordova 和 android 的新手。我在mac上,最近我安装了所有需求:

Phonegap 3.3.0-0.19.6 科尔多瓦 3.3.1-0.4.1

获得 Android SDK 并在 eclipse 上运行没有问题。然后在eclipse上为phonegap创建一个新的Android应用程序成功,并在带有android的手机上运行。

然后我用cordoba(终端)创建另一个应用程序,放置2个平台android和ios,我运行prepare etc..然后将项目(android)导入eclipse。此时应用程序运行正常,所以我继续安装一些插件进行测试(通知和设备)

https://cordova.apache.org/docs/en/3.0.0/cordova_device_device.md.html#Device

当我使用 eclipse 运行应用程序时,示例总是返回

未捕获的类型错误:无法调用未定义的方法“警报”

设备也是如此。所以查看互联网我发现如果我运行 $cordova prepare 将工作,然后我运行命令,然后在 eclipse 上运行应用程序并且它工作但总是当我安装新插件进行测试时,我必须运行cordova prepare,并且问题是 index.html 用示例 hello world 重写,我丢失了我的代码。

这里有什么帮助,我做得好吗?如何安装这些插件并进行测试,而不必一直运行准备。 (请在eclipse上思考,我一直不使用终端)

【问题讨论】:

    标签: android eclipse cordova cordova-3 cordova-plugins


    【解决方案1】:

    我遇到了同样的问题,其他帖子建议对我不起作用。

    尽管有官方文档和其他帖子,我还是通过稍微切换步骤解决了这个问题。 如果我在添加平台之前添加所有文件和核心插件,那么添加平台会将这些东西带到新的文件夹结构中并且在我打开项目之前只从命令行构建一次 .

    如果我需要添加任何内容,我会再次添加。虽然我可以编辑 www 文件而无需再次执行该过程,但我不希望根 www 会延续平台 www 的。我只是将它自己复制到所有 www 文件夹中。不应该是这样,但我认为这是一个有据可查的错误,目前有多个命令行构建,这就是我的工作修复。

    【讨论】:

    • 谢谢你的回答,我会尝试你的方法,结果我会回来
    【解决方案2】:

    推荐的方法是在项目的www根文件夹中编辑html/js/css...,而不是在platfotms/xxx文件夹中。

    原因是如果你有多个平台,你只需要在一个地方修改,cordova preparecordova buildphonegap build 会将你的代码传播到所有平台并更新插件。

    如果你只有android平台并且希望能够直接在eclipse中为platforms/android/assets/www文件夹更改代码,我建议你创建一个shell脚本来

    1. 将projectroot/platforms/android/assets/www的所有内容复制到projectroot/www
    2. 运行cordova准备android

    然后,无需运行cordova prepare android,您只需在添加新插件后运行脚本即可。

    编辑

    我认为可能有更好的方法来解决您的问题。

    您应该能够使用 plugman 来安装插件,而不是使用 cordova。

    首先你需要安装plugman cli:npm install -g plugman

    然后使用

    安装插件
    plugman -d --platform android --project projectname --plugin nameorurlofplugin
    

    http://cordova.apache.org/docs/en/edge/plugin_ref_plugman.md.html

    【讨论】:

      【解决方案3】:

      我也有这些问题。

      我现在使用的一种方法是:

      编辑平台文件夹中的index.html platform/iOS/appname/www 等等。然后使用cordova plugin add 使用普通终端方式添加插件,但始终使用 Xcode for iOS 和 eclipse 运行项目,而不是从终端运行项目,因为那样您将丢失代码。

      根据我的经验,当您使用.xcodeproj 运行或说android 项目时,使用内部的www,如果您从终端使用cordova run ios,外部的www 将覆盖www平台文件夹。

      如果您收到 xcode 错误说找不到某某插件文件,只需将它们移动到错误说 xcode 期望它们所在的路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-15
        • 1970-01-01
        • 2015-11-30
        相关资源
        最近更新 更多