我在Android https://github.com/floatinghotpot/cordova-plugin-admob上安装AdMob cordova插件时遇到错误,该插件已安装并可在iOS平台上正常运行,但它在Android上出现此错误。
我的环境:
npm 1.4.16
命令:
cordova插件添加https://github.com/floatinghotpot/cordova-plugin-admob.git
获取插件 " https://github.com/floatinghotpot/cordova-plugin-admob.git"通过git 克隆 安装" com.rjfun.cordova.plugin.admob"对于Android 获取插件" com.google.admobsdk"通过插件注册表 安装" com.google.admobsdk"对于Android 获取插件" com.google.playservices@19.0.0"通过插件注册表 无法安装com.google.admobsdk':错误:预期获取的插件有ID" com.google.playservices@19.0.0"但得到了 " 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 在_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) 在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 在flush(/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17) at process._tickCallback(node.js:419:13) 无法安装' com.rjfun.cordova.plugin.admob':错误:预期获取的插件具有ID" com.google.playservices@19.0.0"但得到了 " com.google.playservices&#34 ;. 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 在_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) 在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 在flush(/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17) at process._tickCallback(node.js:419:13) 错误:预期获取的插件具有ID" com.google.playservices@19.0.0"但得到了#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 在_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) 在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 在flush(/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17) at process._tickCallback(node.js:419:13)
任何想法?! 提前致谢
答案 0 :(得分:4)
我使用这个并且对我很好:https://github.com/appfeel/admob-google-cordova
cordova plugin add cordova-admob
如果你在phonegap build中运行,那么:
<gap:plugin name="phonegap-admob" source="npm"/>
答案 1 :(得分:4)
您需要升级到cordova CLI v4.0,只需运行:
sudo npm install cordova -g
此失败的根本原因是,cordova CLI v3.5无法正确识别插件com.google.admobsdk
中的以下依赖项。
<dependency id="com.google.playservices@19.0.0"/>
您可能会问,为什么会添加@19.0.0
?
它用于指定确切版本,并使其与cordova CLI和Intel XDK兼容。
由于英特尔XDK无法处理默认的com.google.playservices
(@ 21.0.0)(至少到目前为止,这个答案正在发布),而英特尔可以正确处理版本com.google.playservices@19.0.0
XDK。
cordova v3.5中的一些错误会导致此问题,并已在cordova v4.0中修复,在发行说明中称为“固定依赖项”。
请参阅发行说明:http://cordova.apache.org/announcements/2014/10/16/cordova-4.html
所以,请升级到cordova CLI v4.0,这将更容易。
如果有任何问题,请在项目问题跟踪器页面询问,您将得到及时的支持。