首页 文章

Google Play服务GCM 9.2.0要求“更新”回9.0.0

提问于
浏览
178

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

我正在尝试将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"

    ...
}

任何人有同样的问题/修复同样的问题?

谢谢 .

EDIT

显然你必须在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"

11 回答

  • 0

    你有线吗?

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

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

    当它在顶部时我看到了一些错误,因为它写的是here,它应该在底部 .

  • 53

    Just put this line at the bottom of your app-module's (not project root's) gradle file.

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

    然后重建您的项目 .

  • 6

    我有同样的问题,今天2016年 - 10月 - 06我用这个解决了:

    我改变了以9开头的所有依赖项 . ? . ?到9.6.1我用sdk版本24和目标版本17编译 .

    我的解决方案中还有另一个软件包,因为我使用了更多的东

    使用下面的代码更改build.gradle(Module:app)之后执行以下操作:

    • 将您的包名称放在包含单词applicationId“com.YOUR_PACKAGE_HERE”的行中

    • 同步项目(Ctrl alt v)和Build Again .

    这是适用于我的文件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'
    
  • 2

    以前的版本也是如此 . 它是不可能使用新版本的,因为它与旧插件不兼容 . 我不是't know if plugin is now required (google docs sucks). I remember times when it wasn' t . 唯一的方法是等待新的插件版本,或者你可以尝试删除插件依赖项,但正如我所说,我不确定gcm是否可以在没有它的情况下工作 . 我所知道的9.2.0版本的主要特性是新的Awareness API https://inthecheesefactory.com/blog/google-awareness-api-in-action/en,如果你不需要它,你可以毫无困难地使用9.0.0版本 .

  • 5

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

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

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

    从您的app-module打开 app/build.gradle 并在依赖项阻止后重写下面的行 . 这允许插件确定您正在使用的Play服务版本

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

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

  • 1

    适用于Cordova或Ionic Hybrid App

    在集成Firebase Cloud 消息传递(FCM)后,我的Ionic 1 Cordova Build遇到了类似的问题

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

    所以一个修复将是:在 platforms/android 打开 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
    

    保存文件

    然后使用构建

    离子cordova运行android

    我希望这对每个人都有用

  • 2

    在gradle底部添加此行 .

    申请插件:'com.google.gms.google-services'

    因为它顶部不起作用 . 我面临着类似的问题 .

  • 11

    如果您还包含Firebase,请使用与错误相同的版本 .

  • 2

    在我尝试使用位置服务之前,我没有遇到任何问题,此时我必须将 apply plugin: 'com.google.gms.google-services' 放在文件的底部,而不是顶部 . 原因是当你在顶部有碰撞问题时,将它放在底部,你可以避免这些问题 .

  • -1

    你的目标 SDK 可能高于设备的 SDK ,改变它 . 例如,您的设备正在运行API 23,但您的目标 SDK 是25.更改25到23 .

相关问题