Contexto:
Estou tentando configurar o Google Analytics para o meu aplicativo. (com 4 personalizados buildTypes
e mais do que alguns productFlavors
)
Funciona bem quando seleciono o Build Variant
que está applicationId
definido como com.my.app.package.name
(o nome do pacote usado ao gerar o google-services.json
). Mas, meus outros sabores têm diferentes applicationIds.
Eu segui o guia oficial para configurá-lo.
O erro que recebo quando qualquer outra variante de compilação é selecionada Build Variants Tab
(com um diferente applicationId
(nome do pacote) é o seguinte:
Erro: falha na execução da tarefa ': app: processAllcategoriesDebugfreeGoogleServices'.
Nenhum cliente correspondente encontrado para o nome do pacote 'com.my.app.package.name.debug'
Explicação da mensagem de erro:
No nome da tarefa na mensagem de erro acima, Debugfree
é meu costume buildType
e Allcategories
é um dos meus productFlavors
.
Entendo o erro e sei que o nome do pacote é diferente do que usei ao gerar o json, mas é isso que estou tentando descobrir.
Problema:
Agora, ele google-services.json
reside na app
pasta e, portanto, não estou conseguindo separá-los para cada sabor do produto, soltando-os na pasta do conjunto de origem específico do sabor.
Questões:
- Meu costume
byildType
para depurar sufixos.debug
para oapplicationId
(nome do pacote). Existe uma maneira de fazê-lo funcionar com ogoogle-services.json
que tem meu lançamentoapplicationId
(ou seja, sem o sufixo.debug
) - Existe uma maneira de ter vários tipos de produto configurados no mesmo
google-services.json
arquivo sem usar arquivos e tarefas separados para copiar o arquivo necessário para aapp
pasta. Eu sei que isso pode ser feito usandotask
como mencionado neste post . Existe uma maneira mais simples de ter apenas um arquivo ou escolher o arquivo certo com base na configuração do gradle? - Eu vejo o
package_name
campo emgoogle-services.json
tem o nome do pacotecom.my.app.package.name
. Posso adicionar vários nomes de pacotes manualmente para trabalhar com todas as variantes de compilação? Se sim, como fazer isso? Não foi possível encontrar nenhuma instrução nas documentações.
fonte
Respostas:
Verifique o nome do seu pacote no seu google-services.json e deve ser o mesmo do seu pacote local do seu aplicativo
Exemplo
Nesse caso, o nome do meu pacote local é com.my.app.package.name, então também mudei o nome do meu pacote no google-services.json com o meu nome do pacote local
fonte
Encontrou isto:
Fonte
Fonte 2
fonte
Nenhum cliente correspondente encontrado para o nome do pacote 'com.tf' Tenho certeza de que o "package_name" no google-services.json não corresponde ao seu "applicationId" no aplicativo gradle.
gradle app:
google-services.json
Solução : verifique se o
package_name
eapplicationId
deve ser o mesmo.fonte
application id
aplicativo gradle acertou em cheioverifique se o nome do pacote no arquivo "google-services.json" é igual ao nome do pacote dos seus aplicativos.
fonte
Eu encontrei a solução:
Temos que criar dois "aplicativos" no projeto firebase e, em seguida, podemos baixar o arquivo json de qualquer aplicativo (baixei do aplicativo com sabor). Ele conterá os dados para os dois aplicativos. Podemos simplesmente copiar o arquivo json para o diretório raiz do aplicativo.
Fonte: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html
fonte
Você precisa colocar
google-services.json
emapp/
dir. E para cada tipo de construção, deve haver um diretor concordante naapp/src
pasta.Por exemplo, se você tiver lançamento e depuração:
Em todos os arquivos google-services.json, você deve especificar correto de
package_name
acordo com o tipo de construção.Por exemplo, dentro do diretório de depuração, deve ser como
{com.myapp}.debug
fonte
"client"
matriz do (adicionar uma vírgula entre os elementos) e alterar apenas o"package_name"
valor do novo elemento para incluir o.debug
sufixo. Depois reconstrua. Funcionou para mim no AS 2.3.3.Este erro ocorre quando você tem um arquivo Json do Google Services baixado em seu projeto cujo nome do pacote não corresponde ao nome do pacote do seu projeto .
Renomou recentemente o nome do pacote do projeto?
Ele atualiza todas as classes, mas não o arquivo Gradle . Portanto, verifique se o nome do seu pacote está correto no seu Gradle e também talvez o manifesto.
fonte
Faça o passo abaixo.
1) Faça o check-
applicationId
in nogradle
arquivo no nível do aplicativo ,2) Verifique
package_name
seugoogle-services.json
arquivo,3) Verifique
package
seuAndroidManifest
arquivoe para confirmação completa, faça o nome do diretório do pacote de trabalho, ou seja ("com.example.app") também é o mesmo.
fonte
package
manifesto (e todos os arquivos em todos os pacotes), poisapplicationId
o ID do aplicativo será alterado.Primeiro, adicione um sufixo ao pacote de aplicativos no Gradle:
Isso fará com que seu pacote seja nomeado
Em seguida, vá para o Firebase no seu projeto atual e adicione outro aplicativo Android com este nome de pacote.
Em seguida, substitua o arquivo google-services.json existente pelo novo que você gera pelo novo aplicativo.
Então você terminará com algo que possui várias seções "client_info". Então você deve terminar com algo assim:
fonte
verifique se
client_id
epackage_name
no google-services.json tem um valor correto de acordo com o nome do seu pacote.Você deve adicionar o arquivo mencionado no diretório flavors com o nome do pacote correspondente no campo
client_id
epackage_name
.fonte
1.Verifique o nome do pacote e o ID do aplicativo devem ser os mesmos
2.Verifique o nome do pacote google-services.json, disponível na pasta do aplicativo
fonte
Renomeie ApplicationId no arquivo gradle após renomear seu pacote
fonte
Abra seu arquivo Google-services.json e procure esta seção no arquivo:
verifique se o pacote é igual ao seu nome de pacote. O meu era diferente, então eu mudei e funcionou.
fonte
Estou vindo de reagir nativo, mas acho que isso se aplica a esta questão também. Especificar.
Dentro do arquivo
android/app/build.gradle
pesquisaapplicationId
(dentroandroid
,defaultConfig
)e garantir que esse valor seja o mesmo
client[0]client_info.android_client_info.package_name
como o valor dentro
google-services.json
.fonte
Você também precisa alterar o nome do pacote no google-services.json
fonte
Se o nome do seu pacote no arquivo Google-services.json estiver bom, vá para o arquivo gradle.properties. Então mude seu APPLICATION_ID = "com.yourpackage.name"
fonte
Eu acho que você adicionou o arquivo json do firebase "google-services" .json ao novo arquivo. Certifique-se de criar um novo arquivo, verifique o link sobre como criar o arquivo json a partir do firebase e ele deve corresponder ao nome do seu pacote
A segunda coisa é que, se você estiver alterando o nome do pacote, use a opção "substituir no caminho" quando clicar com o botão direito do mouse nos arquivos ao selecionar o projeto na lista suspensa. Você precisa procurar o nome do pacote em todo o projeto e substituí-lo!
Espero que isto ajude !
fonte
se nada funcionou para um de vocês, meu problema foi com um nome de pacote que não começou com um 'com'. mudou, agora funciona.
espero que ajude
fonte
verifique se applicationId do Gradle.app é o mesmo nome do pacote. meu problema era esse e eu resolvi assim
fonte
acesse o diretório do projeto e crie pastas no caminho app / src que nomeou os sabores do seu produto (como Alpha, Beta, Store ou qualquer que seja o nome do seu sabor). copie seu arquivo google-services.json para cada pasta. não se esqueça de alterar o campo "package_name" no arquivo google-services.json de cada produto, que você subpastou.
fonte
Vá para o arquivo google-services.json e, na parte do cliente, verifique o nome do pacote e compare-o com o nome do pacote do aplicativo, se eles forem diferentes. Altere o nome do pacote do cliente de acordo com o nome do pacote do aplicativo, que funcionou para mim, boa sorte ..
arquivo google-services.json-> "package_name": "com.example.application.tracker"
Nome do pacote de aplicativos-> pacote "com.example.application.tracker";
fonte
Eu o resolvi criando dois conjuntos de fontes, um gratuito e um pago. Ambas as pastas conterão o código java e os arquivos de recursos necessários, que serão editados de acordo com os requisitos do tipo específico. Por exemplo, você deseja remover o código da AdMob no pago de classes Java e arquivos de layout.
fonte
Resolvi o mesmo problema sincronizando novamente o arquivo
google-services.json
.fonte
google-services.json
.Eu resolvi o mesmo problema aqui é uma solução simples: quando você cria uma conexão firebase, siga estas orientações:
Adicione o nome do seu aplicativo no firebase
Adicione o nome do seu aplicativo pakage (escreva o mesmo nome do pacote, você está usando no aplicativo)
quando o firebase cria o arquivo google-services.json, basta fazer o download e colar na pasta do aplicativo
Sincronize seu projeto Problema resolvido :)
Obrigado
fonte
Também recebo esse problema quando altero o nome do pacote do meu aplicativo.
No seu projeto do android studio, encontre o arquivo "google-services.json". Abra. e verifique se o nome do pacote do seu aplicativo é o mesmo que está escrito neste arquivo.
O nome do pacote do seu aplicativo e o nome do pacote gravados no arquivo "google-services.json" devem ser iguais.
fonte
Isso significa que o arquivo google-services.json não pertence ao seu aplicativo (você baixou o google-services.json para outro aplicativo?) ... então, para resolver isso, faça o seguinte:
1: Entre no Firebase e abra seu projeto. 2: Clique no ícone Configurações e selecione Configurações do projeto. 3: No cartão Your apps, selecione o nome do pacote do aplicativo para o qual você precisa de um arquivo de configuração na lista. 4: Clique em google-services.json. Após a conclusão do download, adicione o novo google-services.json à pasta raiz do projeto, substituindo o existente .. ou apenas exclua o antigo. É muito normal fazer o download do google-services.json para o seu primeiro projeto e, em seguida, supor ou esquecer que esse google-services.json específico é adaptado apenas ao seu projeto atual, porque não a nenhum outro, porque todos os projetos têm um nome de pacote exclusivo.
fonte
Verifique
applicationIdSuffix
no arquivo build.gradle do seu aplicativo. Veja se está concatenando algum texto para o seuapplicationId
. Se sim, remova-o.fonte
você pode fazer isso para resolver esse problema.
fonte
Simples. Saia do Android Studio, feche-o completamente. Reabra o Android studio e, em seguida, entre novamente no Android Studio.
Em seguida, tente conectar-se ao firebase a partir do IDE do Android studio. Este procedimento funcionou para mim.
fonte
É simples resolver isso: verifique se o nome do pacote no arquivo app / build.gradle é o mesmo nome do pacote no arquivo do manifesto do aplicativo. e verifique se o nome do pacote está correto. Isso deve resolver isso
fonte