2014-12-02 49 views
1

我在Android上安装AdMob cordova插件时遇到了错误,该插件已安装并且可以在iOS平台上正常工作,但它在android上会出现此错误。Cordova - 在Android上安装AdMob插件失败(Mac)

我的环境:

Fetching plugin " https://github.com/floatinghotpot/cordova-plugin-admob.git " via git clone Installing "com.rjfun.cordova.plugin.admob" for android Fetching plugin "com.google.admobsdk" via plugin registry Installing "com.google.admobsdk" for android Fetching plugin "[email protected]" via plugin registry Failed to install 'com.google.admobsdk':Error: Expected fetched plugin to have ID "[email protected]" but got "com.google.playservices". at checkID (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:116:19) at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:99:24 at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:798:54) at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:827:30) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13) at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:574:44 at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17) at process._tickCallback (node.js:419:13) Failed to install 'com.rjfun.cordova.plugin.admob':Error: Expected fetched plugin to have ID "[email protected]" but got "com.google.playservices". at checkID (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:116:19) at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:99:24 at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:798:54) at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:827:30) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13) at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:574:44 at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17) at process._tickCallback (node.js:419:13) Error: Expected fetched plugin to have ID "[email protected]" but got "com.google.playservices". at checkID (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:116:19) at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:99:24 at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:798:54) at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:827:30) at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13) at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:574:44 at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17) at process._tickCallback (node.js:419:13)

任何想法? 在此先感谢

回答

4

简单的答案是:

您需要升级到cordova CLI v4.0,只需运行:

sudo npm install cordova -g 

详细的回答是:

这种故障,科尔多瓦CLI V3.5不能正确识别插件com.google.admobsdk以下依赖的根本原因。

<dependency id="[email protected]"/> 

你可能会问,为什么加入@19.0.0

它用于指定确切的版本,并保持它与cordova CLI和Intel XDK兼容。

由于英特尔XDK无法处理默认com.google.playservices(@ 21.0.0)(至少到目前为止,在发布此答案时),而英特尔XDK可以正确处理版本[email protected]

cordova v3.5中的一些bug会导致此问题,并已在cordova v4.0中修复,在发行说明中称为“固定依赖性”。

参见发行说明:http://cordova.apache.org/announcements/2014/10/16/cordova-4.html

所以,请升级到科尔多瓦CLI V4.0,它会容易得多。

如果有任何问题,请在项目问题跟踪页面询问,您会得到及时的支持。

+0

是的确,那是我的解决方案 – user2120121 2014-12-07 08:24:43