所以今天早上我开始更新到我的项目库的最新版本。
我正在尝试将 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"
你有线吗
apply plugin: 'com.google.gms.google-services'
应用程序的 build.gradle 文件底部的行?
当它在顶部时我看到了一些错误,因为它写成 here,它应该在底部。
只需将此行放在应用模块(不是项目根目录)gradle
文件的底部即可。
apply plugin: 'com.google.gms.google-services'
然后重建你的项目。
我有同样的问题,今天 2016 年 - 10 月 - 06 日我解决了这个问题:
我更改了所有以 9.?.? 开头的依赖项到 9.6.1 我用 sdk 版本 24 和目标版本 17 编译。
我的解决方案中还有另一个包,因为我使用了更多的东西,然后只使用了身份验证。
使用以下代码更改您的 build.gradle (Module:app) 后,请执行以下操作:
将您的包名称放在带有 applicationId "com.YOUR_PACKAGE_HERE" 字样的行中同步您的项目 (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'
以前的版本也是如此。令人烦恼的是新版本的com.google.android.gms库总是在插件之前发布,并且由于与旧插件不兼容而无法使用新版本。我不知道现在是否需要插件(谷歌文档很烂)。我记得不是的时候。唯一的方法是等待新的插件版本,或者您可以尝试删除插件依赖项,但正如我所说,我不确定 gcm 是否可以在没有它的情况下工作。我知道 9.2.0 版本的主要特点是新的 Awareness API https://inthecheesefactory.com/blog/google-awareness-api-in-action/en,如果你不需要它,你可以毫无问题地使用 9.0.0 版本。
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'
从您的应用模块打开 app/build.gradle
并在依赖项块后重写以下行。这允许插件确定您正在使用的 Play 服务版本
apply plugin: 'com.google.gms.google-services'
我从 here 得到这个想法。在本教程中,第二点是上面的插件行位于 app/build.gradle
文件的底部,这样就不会引入依赖冲突。希望它会帮助你。
对于 Cordova OR Ionic Hybrid 应用程序
在集成 Firebase 云消息传递 (FCM) 后,我的 Ionic 1 Cordova Build 遇到了非常相似的问题
我通过以下步骤解决了这个问题
所以一个解决方法是:在platforms/android open project.properties (Its a file) 里面,你会有这样的东西
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
保存文件
然后使用构建
离子科尔多瓦运行android
我希望这对每个人都有效
在 gradle 的底部添加这一行。
应用插件:'com.google.gms.google-services'
因为它的顶部不起作用。我面临着类似的问题。
如果您还包含 Firebase,请将它们设置为与错误所述相同的版本。
在我尝试使用定位服务之前我没有遇到过这个问题,此时我不得不将 apply plugin: 'com.google.gms.google-services'
放在文件的底部,而不是顶部。原因是当您将其放在顶部时会出现碰撞问题,而将其放在底部则可以避免这些问题。
您的目标 SDK
可能高于设备的 SDK
,请更改它。例如,您的设备正在运行 API 23,但您的目标 SDK
是 25。将 25 更改为 23。