Google Play Services GCM 9.2.0要求“更新”回9.0

所以今天早上我开始更新我的项目库的最新版本。

我正在尝试将 GCM 更新到最新版本9.2.0,但是我得到了这个错误:

错误: 任务“ : app: processDebugGoogleServices”执行失败。 请通过更新 google-services 插件的版本(关于最新版本的信息可在 https://bintray.com/android/android-tools/com.google.gms.google-services/获得)或者更新 com.google.android.gms 的版本到9.0.0来修复版本冲突。

我的代码是这样的:

dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}

然后:

dependencies {
...


compile "com.google.android.gms:play-services-gcm:9.2.0"


...
}

有人有同样的问题/解决了同样的问题吗?

谢谢。

剪辑

显然,你必须在 app/build.gradle 文件的底部应用 GSM 插件。否则,版本9.2.0将在项目中引起冲突。

作为参考,下面是我的 app/build.gradle 文件现在的样子:

apply plugin: "com.android.application"
apply plugin: "com.neenbedankt.android-apt"


android {
...
}


dependencies {
...


// Google Cloud Messaging
compile "com.google.android.gms:play-services-gcm:9.2.0"


...
}


apply plugin: "com.google.gms.google-services"
121701 次浏览

以前的版本也出现了同样的情况。令人恼火的是,新版本的 com.google.android.gms 库总是在插件发布之前发布,而且不可能使用新版本,因为它与旧插件不兼容。我不知道现在是否需要插件(谷歌文档糟透了)。我记得以前不是这样的。唯一的办法是等待新的插件版本,或者你可以尝试删除插件依赖,但正如我所说,我不确定如果没有它,gcm 是否能工作。我所知道的9.2版本的主要特性是新的感知 API https://inthecheesefactory.com/blog/google-awareness-api-in-action/en,如果你不需要它,你可以毫无困难地使用9.0版本。

你有电话吗

apply plugin: 'com.google.gms.google-services'

在你的应用程序 build.gradle 文件的底部?

我看到了一些错误,当它在顶部,因为它写的 给你,它应该在底部。

只要把这一行放在 app-module 的(而不是项目 root 的) gradle文件的底部。

apply plugin: 'com.google.gms.google-services'

然后重建你的项目。

2016年10月6日的今天,我也遇到了同样的问题 我用这个解决了问题:

我将所有从9.6.1开始的依赖关系更改为9.6.1 我使用 sdk 版本24和目标版本17编译。

在我的解决方案中还有另外一个包,因为我使用了比身份验证更多的东西。

用下面的代码修改 build.gradle (Module: app)之后,可以这样做:

  1. 将您的包 NAME 放在使用 applicationId“ com.Your _ PackAGE _ Here”行中

  2. 同步您的项目(Ctrl + alt + v)并重新构建。

这是适用于我的文件 buid.gradle (Module: app)的代码:

apply plugin: 'com.android.application'


android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
defaultConfig {
applicationId "com.YOUR_PACKAGE_HERE"
minSdkVersion 24
targetSdkVersion 17
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}


dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})


compile 'com.google.firebase:firebase-core:9.6.1'
compile 'com.google.firebase:firebase-database:9.6.1'


compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'


compile 'com.google.firebase:firebase-crash:9.6.1'
testCompile 'junit:junit:4.12'


compile 'com.google.firebase:firebase-messaging:9.6.1'


compile 'com.google.firebase:firebase-ads:9.6.1'




compile 'com.google.firebase:firebase-auth:9.6.1'




compile 'com.google.android.gms:play-services:9.6.1'


}
apply plugin: 'com.google.gms.google-services'

Gustavomcls 将 com.google. * 版本更改为相同版本的解决方案对我很有效。

在 buid.gradle (Module: app)中,我将两个依赖项都更改为9.2.1

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'

在尝试使用 Location Services 之前,我没有遇到这个问题,此时我必须将 apply plugin: 'com.google.gms.google-services'放在文件的底部,而不是顶部。原因是当你把它放在顶部的时候会有碰撞问题,而把它放在底部的时候,你就避免了这些问题。

从 app-module 中打开 app/build.gradle,并在依赖块之后重写以下代码行。这允许插件确定您正在使用的 Play 服务的版本

apply plugin: 'com.google.gms.google-services'

我从 给你得到这个想法。在本教程中的第二点是说,上面的插件行位于 app/build.gradle文件的底部,这样就不会引入依赖性冲突。希望能帮到你。

如果你有 Firebase 也包括在内,使他们的相同版本的错误说。

科尔多瓦或离子混合应用程序

我有一个非常类似的问题与我的 Ionic 1 Cordova 构建后,整合了火库云消息(FCM)

我通过以下步骤解决了这个问题

因此,一个修复将是: 在 平台/机器人打开 Project.properties(它是一个文件) ,您将有这样的东西

cordova.system.library.1=com.google.android.gms:play-services-ads:+
cordova.system.library.2=com.google.firebase:firebase-core:+
cordova.system.library.3=com.google.firebase:firebase-messaging:+

替换

+

使用您的目标版本号签名-如下所示

cordova.system.library.1=com.google.android.gms:play-services-ads:9.0.0
cordova.system.library.2=com.google.firebase:firebase-core:9.0.0
cordova.system.library.3=com.google.firebase:firebase-messaging:9.0.0

保存文件

然后使用

 ionic cordova run android

我希望这对每个人都有用

你的目标 SDK可能高于设备的 SDK,改变它。 例如,您的设备正在运行 API 23,但是您的目标 SDK是25。 把25号改成23号。

在梯级底部加上这条线。

应用插件: ‘ com.google.gms.google-services’

因为它的顶部它不工作。我面临着类似的问题。