Cordova 3.1.0:未找到插件或不是CDVPlugin

时间:2013-10-07 09:49:19

标签: ios plugins cordova ios7 cordova-3

我正在尝试构建我的第一个Cordova应用程序,但我无法使用该插件。

我的应用是使用Cordova命令行界面构建的,所以我以这种方式添加了Camera插件:

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git

我的config.xml如下所示:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.dev.myapp" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>My App</name>
    <description>
        A sample Apache Cordova application
    </description>
    <author email="dev@callback.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <access origin="*" />
    <preference name="fullscreen" value="true" />
    <preference name="webviewbounce" value="true" />
    <feature name="Camera">
        <param name="ios-package" value="CDVCamera" />
    </feature>
</widget>

我已经运行了cordova build,一切都很顺利,但是当我在Xcode中构建项目时,它首先告诉我CDVCamera.h, CDVCamera.m files丢失了。当我首先运行cordova plugin add时,命令行界面是不是应该正确放置这些文件?

即使我在项目中手动复制文件,项目也会运行但是当我调用Camera函数时会抛出以下错误:

ERROR: Plugin 'Camera' not found, or is not a CDVPlugin

我知道我是新手,但我无法弄清楚我做错了什么?

6 个答案:

答案 0 :(得分:16)

如果在所有文件到位后仍然出现此错误,请确保相关的源.m文件实际上是项目的目标成员。

要执行此操作,请在Xcode中选择Plugin.m文件,并确保在目标成员下的右侧检查器窗格中选中项目的复选框。

删除并添加插件几次后,我遇到了这个问题。

提示:当您的插件不是项目成员时,相应的Plugin.h文件缺少CDVPlugin类中声明的类型的语法颜色突出显示(如Xcode 5.0中所示)。

答案 1 :(得分:7)

如果您的Xcode项目中没有太多内容(我没有),解决此问题的最简单方法是:

cordova platform remove ios

然后......

cordova platform add ios

通过这样做可以解决混乱的问题。您无需重新安装插件,重新添加平台时会安装插件。

答案 2 :(得分:1)

好的,所以看来你必须在创建构建之前添加所需的所有插件。然后,所有资源文件都已正确定位。

答案 3 :(得分:1)

我遇到了与phonegap 3.6相同的问题。通过更新phonegap,问题就解决了。

npm update -g cordova

显然,人们必须有更新phonegap的愿望:)

答案 4 :(得分:1)

我要说的是,即使你不认为这是你的问题,我也会尝试克里斯·雷的重置平台的解决方案!

cordova platform rm ios
cordova platform add ios

谢谢Chris Rae的解决方案!它对我很有用。我在将WKWebview添加到我的应用程序并将其放入博客文章时收集了它以及其他解决方案。

http://blog.tylerbuchea.com/using-wkwebview-in-ios9-to-boost-ionic-cordova-performance/

我想我还有另外一个关于构建设置的解决方案。所以,不要生气/感谢一堆!

答案 5 :(得分:0)

我在重新安装插件时遇到了这个问题,但设法解决了这个问题。如果像我一样,移除平台不是一种选择,因为你做了太多的工作,这是一个解决方案:

第1步:将CDVCamera.m添加到编译源(在构建阶段)

步骤2:如果您的问题与我的问题相同,您将收到Apple Match-o-Linker错误:将框架OpenAL和ImageIO添加到您的项目中。

第3步:重建并庆幸:)