我最近从2.3.0升级到了Cordova 2.9.0。在遵循了所有升级说明后,我能够在模拟器中启动应用程序。但是,在Xcode中我看到了以下错误:
ERROR: Plugin 'Device' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["Device1776032119","Device","getDeviceInfo",[]]
ERROR: Plugin 'NetworkStatus' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["NetworkStatus1776032120","NetworkStatus","getConnectionInfo",[]]
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["INVALID","Logger","logLevel",["LOG","deviceready has not fired after 5 seconds."]]
ERROR: Plugin 'Logger' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["INVALID","Logger","logLevel",["LOG","Channel not fired: onCordovaConnectionReady"]]
ERROR: Plugin 'Logger' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
-[CDVCommandQueue executePending] [Line 103] FAILED pluginJSON = ["INVALID","Logger","logLevel",["LOG","Channel not fired: onCordovaInfoReady"]]
这是我的config.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<widget>
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<feature name="Device">
<param name="ios-package" value="CDVDevice" />
</feature>
<feature name="Accelerometer">
<param name="ios-package" value="CDVAccelerometer" />
</feature>
<feature name="Compass">
<param name="ios-package" value="CDVLocation" />
</feature>
<feature name="Media">
<param name="ios-package" value="CDVSound" />
</feature>
<feature name="Camera">
<param name="ios-package" value="CDVCamera" />
</feature>
<feature name="Contacts">
<param name="ios-package" value="CDVContacts" />
</feature>
<feature name="File">
<param name="ios-package" value="CDVFile" />
</feature>
<feature name="NetworkStatus">
<param name="ios-package" value="CDVConnection" />
</feature>
<feature name="Notification">
<param name="ios-package" value="CDVNotification" />
</feature>
<feature name="FileTransfer">
<param name="ios-package" value="CDVFileTransfer" />
</feature>
<feature name="Capture">
<param name="ios-package" value="CDVCapture" />
</feature>
<feature name="Battery">
<param name="ios-package" value="CDVBattery" />
</feature>
<feature name="SplashScreen">
<param name="ios-package" value="CDVSplashScreen" />
</feature>
<feature name="Echo">
<param name="ios-package" value="CDVEcho" />
</feature>
<feature name="Globalization">
<param name="ios-package" value="CDVGlobalization" />
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<feature name="Logger">
<param name="ios-package" value="CDVLogger" />
</feature>
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
<plugins>
</plugins>
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="UIWebViewBounce" value="true" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="EnableLocation" value="false" />
<preference name="EnableViewportScale" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="OpenAllWhitelistURLsInWebView" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<access origin="*.googleapis.com"/>
<access origin="*.gstatic.com"/>
<access origin="*.s3.amazonaws.com"/>
</widget>
发布于 2013-12-14 05:58:33
对于未来的搜索者(像我!),我在尝试将控制台插件添加到我的项目中时遇到了类似的问题。安装插件后,我缺少的一步是确保插件(CDVlogger.m)的“目标成员”设置的源文件包含我的应用程序名称。
发布于 2013-08-02 10:00:12
我也有同样的问题。我刚刚使用node的包管理器下载了cordova 3.0命令行工具。然后,我使用来自终端的工具来创建我的项目,向其中添加平台,并像这样构建它。
cordova create myApp com.project.RobertW myApp
cd myApp
cordova platform add ios
cordova platform add android
cordova build
之后,当我尝试在模拟器中运行Xcode时,我在Xcode中看到了同样的错误。似乎在默认情况下,PhoneGap在项目中不包含任何插件,所以即使在您的配置文件中,它们也可能不在插件文件夹中。您必须手动或通过命令行工具添加它们。我使用命令行工具,因为我认为这样更容易。
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git
cordova build
完成此操作后,我在模拟器中再次运行myApp,一切运行正常。这里有一些关于命令行工具的很好的说明:
http://docs.phonegap.com/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface
我想,如果PhoneGap 3.0需要记录器、设备和网络状态,它会自动包含这些插件,但在我的情况下,它不会。希望这能有所帮助。
编辑:在Xcode的iOS版本的config.xml中,您还需要进行此更改才能使Logger插件正常工作。以下是默认设置。
<feature name="Console">
<param name="ios-package" value="CDVLogger" />
</feature>
将上面的更改为以下内容
<feature name="Logger">
<param name="ios-package" value="CDVLogger" />
</feature>
现在,您的所有控制台函数都应该可以正常工作,而不会抛出错误。
发布于 2013-10-01 18:31:08
我在使用Phonegap 3.0.0的设备信息插件时也遇到了同样的问题。为了解决这个问题,我只需卸载并重新安装插件,然后重新构建我的项目。
phonegap local plugin remove org.apache.cordova.device
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
phonegap local build ios
https://stackoverflow.com/questions/17384523
复制相似问题