我在安卓 https://github.com/floatinghotpot/cordova-plugin-admob 上安装 AdMob cordova 插件时遇到错误,该插件已安装并且可以在 iOS 平台上正常工作,但它在安卓上给出了此错误。
我的环境:
- 科尔多瓦 3.5
- 安卓 API 19
- 爪哇 8
- 日食月神
- 阿帕奇蚁 1.9.4
-
npm 1.4.16
命令:
科尔多瓦插件添加 https://github.com/floatinghotpot/cordova-plugin-admob.git
获取插件 通过 git 的"https://github.com/floatinghotpot/cordova-plugin-admob.git" 克隆 为 android 安装 "com.rjfun.cordova.plugin.admob" 通过插件注册表获取插件"com.google.admobsdk" 为 android 安装 "com.google.admobsdk" 通过插件注册表获取插件"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 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( 在 process._tickCallback (节点.js:419:13( 无法安装"com.rjfun.cordova.plugin.admob":错误:预期获取的插件具有 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 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( 在 process._tickCallback (节点.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 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( 在process._tickCallback (节点.js:419:13(
有什么想法吗?!提前致谢
简单的答案是:
您需要升级到 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兼容。
由于默认com.google.playservices
(@21.0.0( 无法由英特尔 XDK 处理(至少到目前为止,在发布此答案时(,而版本 com.google.playservices@19.0.0
可以由英特尔 XDK 正确处理。
cordova v3.5 中的一些错误会导致此问题,并已在 cordova v4.0 中修复,在发行说明中称为"固定依赖项"。
请参阅发行说明:http://cordova.apache.org/announcements/2014/10/16/cordova-4.html
所以,请升级到科尔多瓦 CLI v4.0,它会容易得多。
如有任何问题,请在项目问题跟踪器页面询问,您将得到及时的支持。
我正在使用这个并且对我来说工作正常:https://github.com/appfeel/admob-google-cordova
cordova plugin add cordova-admob
如果您在 phonegap 构建中运行,则:
<gap:plugin name="phonegap-admob" source="npm"/>