O Google Play Services GCM 9.2.0 pede para "atualizar" de volta para 9.0.0

178

Então, nesta manhã, comecei a atualizar para a versão mais recente das minhas bibliotecas de projetos.

Estou tentando atualizar o GCM para a versão mais recente 9.2.0, mas recebo este erro:

Erro: falha na execução da tarefa ': app: processDebugGoogleServices'. Corrija o conflito de versão atualizando a versão do plug-in google-services (informações sobre a versão mais recente estão disponíveis em https://bintray.com/android/android-tools/com.google.gms.google-services/ ) ou atualizando a versão do com.google.android.gms para 9.0.0.

É assim que eu tenho meu código:

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'
}

E depois:

dependencies {
    ...

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

    ...
}

Alguém com o mesmo problema / corrigiu o mesmo problema?

Obrigado.

EDITAR

Aparentemente, você deve aplicar o plug-in GSM na parte inferior do arquivo app / build.gradle. Senão, a versão 9.2.0 causará conflito no seu projeto.

Para referência, é assim que meu arquivo app / build.gradle se parece agora:

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"
herrmartell
fonte
mesmo problema aqui, voltei para 9.0.0
mbonnin
@mbonnin Acabei fazendo o mesmo. Mas certamente gostaria de saber o que está acontecendo aqui. Ainda não tivemos sorte em encontrar uma resposta.
precisa saber é o seguinte
2
E a 9.0.0 possui esse bug stackoverflow.com/questions/37361651/… e a solução parece ser a atualização para a 9.2.0 .... O que não é possível graças ao bug aqui :-(
mbonnin
6
ele está trabalhando, se eu aplicar o plug-in no final do arquivo build.gradle como Gusthema diz abaixo
mbonnin
Leia como corrigir esse problema da maneira certa no meu post aqui .
Pedro Varela

Respostas:

507

Você tem a linha

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

na parte inferior do arquivo build.gradle do seu aplicativo?

Vi alguns erros quando estavam no topo e, como está escrito aqui , deveriam estar no fundo.

Gusthema
fonte
11
Isso não é verdade, gms plug-in deve estar na parte inferior do arquivo como você pode ver aqui nos docs para gms: developers.google.com/android/guides/google-services-plugin
Gusthema
1
Eu estou corrigido. Independentemente disso, isso não resolverá o problema.
herrmartell
1
Não sei por que, na primeira vez que tentei, não funcionou. Tentei novamente por causa do comentário do @mbonnin e está funcionando agora. Obrigado.
precisa saber é o seguinte
9
Eu adicionei essa linha no início do arquivo, mas funcionou depois de colocá-la na parte inferior.
SHA2NK
2
A adição do plug-in na parte inferior resolveu o conflito de versão.
Pratima 14/03
54

Basta colocar esta linha na parte inferior do gradlearquivo do módulo do aplicativo (não da raiz do projeto) .

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

Em seguida, reconstrua seu projeto.

Vikas
fonte
11

Eu tive o mesmo problema, hoje 2016 - outubro - 06 resolvi com isso:

Mudei todas as dependências que começaram com 9.?.? para 9.6.1 Eu compilei com o sdk versão 24 e destino versão 17.

Há outros pacotes na minha solução porque usei mais coisas do que apenas autenticação.

Depois de alterar seu build.gradle (Module: app) com o código abaixo, faça-o:

  1. Coloque seu pacote NAME na linha com as palavras applicationId "com.YOUR_PACKAGE_HERE"

  2. Sincronize seu projeto (Ctrl + alt + v) e Build Again.

Este é o código do arquivo buid.gradle (Module: app) que funcionou para mim:

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
fonte
6

A mesma situação estava com as versões anteriores. É interessante notar que as novas bibliotecas com.google.android.gms das versões sempre são lançadas antes do plug-in e é impossível usar a nova versão porque é incompatível com o plug-in antigo. Não sei se o plugin agora é necessário (o Google Docs é uma porcaria). Lembro-me de momentos em que não era. A única maneira é esperar pela nova versão do plug-in, ou você pode tentar remover as dependências do plug-in, mas como eu disse, não tenho certeza se o gcm funcionará sem ele. O que conheço o principal recurso da versão 9.2.0 é a nova API do Awareness https://inthecheesefactory.com/blog/google-awareness-api-in-action/en , se você não precisou, pode usar o 9.0. 0 versão sem nenhum problema.

yaneq6
fonte
Ah, vai entender. Como não há documentação declarando o contrário, presumi que as versões mais recentes seriam lançadas com o plug-in necessário. AFAIK, você precisa do plug-in para fazer o GCM funcionar, então acho que essa é uma solução de verificação manual para atualização.
herrmartell
1
Com certeza docs @yaneq Google suga, tem o mesmo problema agora
Lutaaya Huzaifah Idris
5

A solução de Gustavomcls para alterar a versão com.google. * Para a mesma versão funcionou para mim.

Altero ambas as dependências para 9.2.1 em buid.gradle (Módulo: app)

compile 'com.google.firebase:firebase-ads:9.2.1'
compile 'com.google.android.gms:play-services:9.2.1'
Rahul Bagal
fonte
Eu tive esse problema também por causa de firebase, mas eu não gosto dessa solução para rebaixar versão firebase para 9.2.1
Sam Bellerose
2

abra a app/build.gradlepartir do seu módulo de aplicativo e reescreva abaixo da linha após o bloco de dependências. Isso permite que o plug-in determine qual versão dos serviços do Play você está usando

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

Eu tenho essa ideia daqui . Neste tutorial, o segundo ponto está dizendo que a linha de plug-in acima fica na parte inferior do app/build.gradlearquivo, para que nenhuma colisão de dependência seja introduzida. Espero que ajude você.

Rahul Sharma
fonte
Por que você repete respostas que foram dadas há meio ano?
Bevor
2

Para o aplicativo híbrido Cordova OR Ionic

Eu tenho o problema muito semelhante ao meu Ionic 1 Cordova Build depois de integrar o Firebase Cloud Messaging (FCM)

Corrigi esse problema pelas seguintes etapas

Então, uma correção será: dentro de plataformas / android open project.properties (é um arquivo), você terá algo parecido com isto

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:+

Substitua o

+

Assine com o número da versão de destino - como o seguinte

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

Salve o arquivo

Em seguida, construa usando

 ionic cordova run android

Espero que isso funcione para todos

sijo vijayan
fonte
Isso acabou de mudar o erro. Isso é bom, pois só recebi o mesmo erro, mesmo com milhares de soluções testadas.
Spaceman
2

Adicione esta linha na parte inferior do gradle.

aplique o plug-in: 'com.google.gms.google-services'

porque o topo não funciona. Eu estava enfrentando um problema semelhante.

Mudassir Khan
fonte
1

se você tiver incluído o Firebase, faça-os da mesma versão que o erro indica.

srlgrg
fonte
0

Eu não tive problema com isso até tentar usar os Serviços de Localização; nesse momento, tive que colocar a apply plugin: 'com.google.gms.google-services'parte inferior do arquivo e não a parte superior. A razão é que, quando você a encontra no topo, há problemas de colisão e, ao colocá-la na parte inferior, você evita esses problemas.

BlackHatSamurai
fonte
-1

Seu alvo SDKpode ser maior que SDKo do dispositivo, mude isso. Por exemplo, seu dispositivo está executando a API 23, mas seu destino SDKé 25. Altere 25 para 23.

Mohit Mishra
fonte