发现 com.google.android.gms:play-services-gcm:8.3.0,但需要版本 8.1.0。

40

我刚刚在Android SDK Manager中将Google Play服务更新到最新版本23。接下来,我更新了我的项目依赖项:

com.google.android.gms:play-services-gcm:8.3.0

但是我遇到了问题:

Found com.google.android.gms:play-services-gcm:8.3.0, but version 8.1.0 is needed
Found com.google.android.gms:play-services-gcm:8.3.0, but version 8.1.0 is needed
Found com.google.android.gms:play-services-gcm:8.3.0, but version 8.1.0 is needed
Found com.google.android.gms:play-services-gcm:8.3.0, but version 8.1.0 is needed
Found com.google.android.gms:play-services-gcm:8.3.0, but version 8.1.0 is needed
:app:processDebugGoogleServices FAILED
Error:Execution failed for task ':app:processDebugGoogleServices'.
> Please fix the version conflict.

有什么问题吗?你也遇到这个问题了吗?


我今天早上也在苦苦挣扎这个问题,我想找到答案。 - Konstantin
编译 'com.google.android.gms:play-services:9.0.2' - jacktrades
6个回答

74

在您的顶级 build.gradle 文件中,您需要更新依赖项以使用

classpath 'com.google.gms:google-services:1.5.0-beta2'

额外信息: 您可以查看JFrog Bintray上的条目来获取最新版本。

进一步更新: 是的,自我回答该问题后这已被更新。 最新版本为:

classpath 'com.google.gms:google-services:3.0.0'

然而,始终值得跟随提供的链接找到最新版本。


1
classpath 'com.google.gms:google-services:+' 适用于所有。 - user987760
2
谷歌尚未更新其文档,敬重@iNdieboy-Jeff - Rashid
18
真是一团糟!Google的服务变得越来越复杂和令人困惑。 - Ridcully
6
@user987760,在版本号中不应使用 '+'。Android Studio 警告:避免在版本号中使用 +,可能会导致构建结果不可预测且无法重现。 - Bakus123
3
你可以通过访问 https://bintray.com/android/android-tools/com.google.gms.google-services/view 来查看最新版本。 - Jeff Sutton
显示剩余3条评论

26

对于版本8.4.0的问题(也可能适用于之前的版本,因为存在这个疯狂的问题),以下是可行的解决方案:

项目 build.gradle 文件:

dependencies {
     classpath 'com.android.tools.build:gradle:2.1.2'
     classpath 'com.google.gms:google-services:2.1.2'
}

应用程序/移动端的 build.gradle 文件

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'android-apt'

android {
    ...
    ...
    ...
}

dependencies {
    // Google Play Services
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
    // another play services in v8.4.0
}

apply plugin: 'com.google.gms.google-services' // why here on end? Because GOOGLE...

警告:当你将apply plugin: 'com.google.gms.google-services'放在build gradle的顶部时,它可能无法编译...


2
请问您能否解释一下为什么将这行代码移到顶部会导致编译错误?我试图更新Google Play服务版本,但卡住了,最终您的解决方案起作用了,但是将其移动到底部的逻辑背后的原因是什么呢? - Gopal Singh Sirvi
1
我想帮忙,但是我不知道怎么做 :(. 我卡在这个问题上大概两天了,直到我从一些谷歌示例项目中找到了可行的解决方案,当我搜索我的代码和他们的区别时 :/ - mtrakal

1
我被Google Play Services指南解救了。
根据指南,
在 Google Play 服务的版本6.5之前,您必须将整个API包编译到您的应用程序中。在某些情况下,这样做会使得在您的应用程序中(包括框架API、库方法和您自己的代码)保持不超过65,536个方法的数量更加困难。
从版本6.5开始,您可以选择性地将Google Play服务API编译到您的应用程序中。例如,要仅包含Google Fit和Android Wear API,请在您的build.gradle文件中替换以下行:
compile 'com.google.android.gms:play-services:8.4.0'

这些行的内容如下:
compile 'com.google.android.gms:play-services-fitness:8.4.0'
compile 'com.google.android.gms:play-services-wearable:8.4.0'

1
我也遇到了这个问题,尽管我的问题是:“找到com.google.android.gms:play-services-gcm:8.4.0,但需要版本8.3.0”。为了解决问题,我结合了Jeff Sutton和mtrakal的答案。我必须确保在项目级别的Gradle文件中使用最新的Gradle插件和Google服务版本(我使用的是Gradle 1.5,它不起作用)。
classpath 'com.google.gms:google-services:2.0.0-beta6'

classpath 'com.android.tools.build:gradle:2.0.0-beta6'

然后我将apply plugin: 'com.google.gms.google-services'这一行放在应用程序Gradle文件的最后一行。


0
在您的顶层build.gradle文件中,您需要将依赖项更改为:
``` classpath 'com.google.gms:google-services:+' ```

7
在版本号中使用 "+" 符号虽然可行,但可能会导致构建结果不可预测和无法重复。建议明确指定版本号,以定义确切的依赖关系,并确保可以重复构建相同的版本。 - Yuntao

0

我也遇到了同样的冲突com.google.android.gms:play-services-gcm:8.3.0

我更新了Google Play服务工具,问题得到了解决

从SDK管理器中选择该工具并立即更新即可解决问题


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