Cordova在安卓上构建失败(GCM依赖)

7

我已经安装了最新的Android支持存储库包。

但是我无法使用ionic / cordova(第一次构建)编译我的新应用程序,并且我遇到了以下错误:

TR: ~/Documents/bitron/B-See tommaso$ ionic run --device android
Running command: /Users/webdev1/Documents/bitron/B-See/hooks/after_prepare/010_add_platform_class.js /Users/webdev1/Documents/bitron/B-See
add to body class: platform-android
Running command: /Users/webdev1/Documents/bitron/B-See/platforms/android/cordova/run --device
ANDROID_HOME=/usr/share/java/android-sdk-macosx
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
Running: /Users/webdev1/Documents/bitron/B-See/platforms/android/gradlew cdvBuildDebug -b /Users/webdev1/Documents/bitron/B-See/platforms/android/build.gradle -PcdvBuildArch=arm -Dorg.gradle.daemon=true

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_debugCompile'.
   > Could not find any version that matches com.google.android.gms:play-services-gcm:+.
     Searched in the following locations:
         https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
         https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/
         file:/usr/share/java/android-sdk-macosx/extras/android/m2repository/com/google/android/gms/play-services-gcm/maven-metadata.xml
         file:/usr/share/java/android-sdk-macosx/extras/android/m2repository/com/google/android/gms/play-services-gcm/
     Required by:
         :android:unspecified

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.769 secs

/Users/webdev1/Documents/bitron/B-See/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                    ^
Error code 1 for command: /Users/webdev1/Documents/bitron/B-See/platforms/android/gradlew with args: cdvBuildDebug,-b,/Users/webdev1/Documents/bitron/B-See/platforms/android/build.gradle,-PcdvBuildArch=arm,-Dorg.gradle.daemon=true
ERROR running one or more of the platforms: Error: /Users/webdev1/Documents/bitron/B-See/platforms/android/cordova/run: Command failed with exit code 1
You may not have the required environment or OS to run this project
TR: ~/Documents/bitron/B-See tommaso$

这是我的插件列表:
TR: ~/Documents/bitron/B-See tommaso$ ionic plugin list
cordova-plugin-console 1.0.1 "Console"
cordova-plugin-device 1.0.1 "Device"
cordova-plugin-dialogs 1.1.1 "Notification"
cordova-plugin-file 3.0.0 "File"
cordova-plugin-inappbrowser 1.0.1 "InAppBrowser"
cordova-plugin-splashscreen 2.1.0 "Splashscreen"
cordova-plugin-statusbar 1.0.1 "StatusBar"
cordova-plugin-whitelist 1.0.0 "Whitelist"
ionic-plugin-keyboard 1.0.7 "Keyboard"
nl.x-services.plugins.toast 2.0.4 "Toast"
TR: ~/Documents/bitron/B-See tommaso$

我该如何解决这个问题?

你的 Cordova 版本是多少?cordova -v 你能发布你 build-extras.gradle 的相关部分吗? - Andre Kreienbring
我没有名为“build-extras.gradle”的文件 :( - Zorgatone
这很奇怪,因为您没有安装任何搜索com.google.android.gms:play-services-gcm:+的插件。您是否曾经安装过与推送通知相关的任何内容? - Kate Miháliková
1
"ionic状态重置"应该可以帮到你。但是以后参考,即使是phonegap-plugin-push也不需要更改任何gradle文件。 - Kate Miháliková
谢谢!我会尽快尝试并看看结果 :) - Zorgatone
显示剩余2条评论
3个回答

30

在我的情况下,这个消息是由于Android SDK中缺少一些包,因此需要通过Android SDK Manager安装一些包。

android # To open the SDK manager

寻找:

Extras -> Google play services
Extras -> Google repository

然后安装它们。


4
正确的答案是,问题出在缺少 Android SDK 包。 - dlopezgonzalez
1
这是答案。 - Aldracor
嗨,我也遇到了同样的问题。 我没有安装SDK管理器或Android库,但正在Adobe网站上进行远程构建。 你能指导我解决这个问题吗? - Nimesh khatri

3
我通过移除并重新添加平台来解决了这个问题。
由于某种原因,我仍然有一些依赖于我卸载的旧插件。

1
谢谢,这对我来说是正确的答案。我总是忘记做这个 - 我肯定安装了所有正确的SDK包,只是cordova出了点问题。 - Dana Cartwright
1
有一件事情让我非常困扰,那就是当使用Git仓库克隆或切换分支时,插件会到处乱跑...你总是不得不检查已安装的插件并/或卸载它们。我希望它们只是npm包,并且可以通过npm install轻松安装...哈哈 - Zorgatone

1
根据此处的文档,您需要配置Gradle构建系统(文件:build.gradle)以安装gcm插件功能。

e.g:

dependencies {
  compile "com.google.android.gms:play-services-gcm:8.1.0"
}

注意:使用cordova时,build.gradle文件会自动生成。这意味着每次调用cordova / ionic build都会丢失您的添加内容。
cordova团队建议生成一个build-extras.gradle文件进行自定义配置。
然而,对我来说不清楚这些文件是如何合并的:-( 这导致了像你面对的这样的错误。
请阅读我的这里的考虑以解决这个问题。

1
我不明白为什么我的新应用程序(默认模板)甚至无法构建。这意味着每个人在第一次尝试编译新项目时都应该遇到此构建错误。 - Zorgatone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接