科尔多瓦 - 在 Android 上安装 AdMob 插件失败 (Mac)



我在安卓 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"/>

最新更新