Estamos vendo algumas exceções com a mensagem Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
em nosso aplicativo Android, na qual acabamos de adicionar o Firebase Remote Config.
O rastreamento de pilha é o seguinte:
Fatal Exception: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance(Unknown Source)
at com.example.app.fragments.SomeFragment.updateFooter(SourceFile:295)
at com.example.app.fragments.SomeFragment.onCreateView(SourceFile:205)
at android.support.v4.app.Fragment.performCreateView(SourceFile:2080)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1108)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1290)
at android.support.v4.app.BackStackRecord.run(SourceFile:801)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(SourceFile:1638)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(SourceFile:679)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(SourceFile:143)
at android.support.v4.view.ViewPager.populate(SourceFile:1240)
at android.support.v4.view.ViewPager.populate(SourceFile:1088)
at android.support.v4.view.ViewPager.setAdapter(SourceFile:542)
at com.example.app.SomeActivity.onSomeAsyncCallback(SourceFile:908)
at com.example.app.SomeDataRetriever.onAsyncHttpCompleted(SourceFile:72)
at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:141)
at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:19)
at android.os.AsyncTask.finish(AsyncTask.java:679)
at android.os.AsyncTask.access$500(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:696)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5665)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
Esta é a versão 9.6.1 e também estamos usando outros componentes do Firebase:
compile 'com.google.firebase:firebase-ads:9.6.1'
compile 'com.google.firebase:firebase-config:9.6.1'
compile 'com.google.firebase:firebase-invites:9.6.1'
compile "com.google.firebase:firebase-messaging:9.6.1"
Como posso ver na documentação e no Javadoc , não devemos ter que fazer nenhuma inicialização manual no nosso caso.
A exceção acontece no Android 4-6 em uma variedade de dispositivos.
Editar:
Vejo que essa pergunta recebe um pouco de atenção. Acho que essa explicação pode ser interessante para alguns de vocês: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html
fonte
Respostas:
Eu tive esse mesmo problema há algum tempo.
Você está tentando obter uma instância do Firebase sem inicializá-la. Por favor, adicione esta linha de código antes de tentar obter uma instância do Firebase:
fonte
apply plugin: 'com.google.gms.google-services'
Certifique-se de adicionar ao seu build.gradle no nível raiz
Em seguida, no arquivo Gradle no nível do módulo (geralmente o app / build.gradle), adicione a linha 'apply plugin' na parte inferior do arquivo para ativar o plugin Gradle:
Como dito na documentação . Eu tive exceção, como em uma pergunta acima, quando esqueci de adicionar isso nos meus arquivos gradle.
fonte
Parece que
google-services:4.1.0
tem um problema. Faça o downgrade paraou atualize para
Espero que ajude
fonte
classpath 'com.google.gms:google-services:4.1.0'
novamente. YMMV.Estava faltando a linha abaixo no meu arquivo app / build.gradle
e limpe o projeto e execute novamente. Isso consertou para mim.
fonte
tem um problema em vez disso, use:
fonte
Primeira coisa que você precisa adicionar com.google.gms: google-services: xxx no nível raiz build.gradle
}
Depois disso, você precisa aplicar o plug-in: 'com.google.gms.google-services' em app / build.gradle
e se você ainda está tendo problemas, precisa adicionar
pouco antes de ligar
fonte
Após atualizar várias dependências, recebi um erro do Crashlytics na compilação, 'O Crashlytics encontrou uma chave de API inválida: null. Verifique o plugin Crashlytics para garantir que o aplicativo foi adicionado com sucesso! Entre em contato com [email protected] para obter assistência. ' A única resposta não automática que recebi de repetidas tentativas de [email protected] que o erro o direcionou foi que Fabric e Crashlytics são equipes separadas, portanto não puderam me ajudar. Evitei implementar a camada extra do Fabric no Crashlytics e não consegui obter uma nova chave no site do Fabric ou até fazer com que o site me reconhecesse. Ao tentar contornar isso removendo o Crashlytics do meu código, obtive o 'FirebaseApp padrão não inicializado neste processo com.example.app. Certifique-se de chamar FirebaseApp.initializeApp (Context) primeiro 'travamento na execução.
Eu nunca tive que adicionar a linha de inicialização do 'FirebaseApp.initializeApp (this)' e, de fato, ela foi comentada. A documentação até menciona não precisar disso, apenas usando o Firebase para uma atividade. Adicioná-lo não fazia diferença, ainda recebia o erro de execução.
Acontece que o que estava causando os novos erros obscuros foi a dependência atualizada dos serviços do Google. Por enquanto não tenho tempo para passar mais dias tentando corrigir os erros de espingarda que a nova dependência está causando, então, até que alguém encontre soluções, continuarei com a versão antiga. Além da falha de inicialização ímpar, a nova versão pode estar forçando os usuários do Fabric on Crashlytics. Os usuários também estão sendo forçados a voltar para a versão antiga de dependência: o Crashlytics encontrou uma chave de API inválida: null. após com.google.gms atualizado: google-services: 4.1.0
EDIT 17/10/18: Depois de atualizar as seguintes dependências novamente
Recebi uma falha imediata na tentativa de instalação com 'xxx foi fechado inesperadamente', como quando tentei a atualização de dependência dos serviços do google. Ao pesquisar no log, encontrei um link que me indicava para adicioná-lo ao manifesto
Isso é novo e não é mencionado nas instruções de configuração e intersticiais aqui https://firebase.google.com/docs/android/setup e aqui https://developers.google.com/admob/android/interstitial .
Eu costumava lidar apenas com um ID relacionado ao anúncio do meu aplicativo, o INTERSTITIAL_UNIT_ID. Agora, dois precisam ser tratados. Além da adição acima, a documentação direciona a adição de ADMOB_APP_ID aqui (o mesmo número que você vincula aos anúncios.APPLICATION_ID no novo código de manifesto)
Os IDs INTERSTITIAL_UNIT_ID e ADMOB_APP_ID podem ser desenterrados no seu console do Google AdMob. Meu aplicativo de jogo parou de veicular anúncios na minha primeira atualização das dependências do firebase e ainda não exibe anúncios, fornecendo o código de erro 0 no
Mesmo depois de toda essa confusão, ainda não consigo atualizar a dependência dos serviços do google sem a falha de inicialização do erro de inicialização. Espero ficar preso no google-services: 4.0.1 por algum tempo.
EDIT 10/24/18: De [email protected] após semanas de correspondência sobre a não exibição de anúncios após a atualização:
Obrigado por compartilhar os logs do dispositivo. A partir dos registros, parece um problema existente e isso está na nossa lista de prioridades e nossa equipe está trabalhando na correção e isso só está acontecendo nos dispositivos Android O e P. '
Apenas dispositivos O e P? Essas são as duas últimas versões, O lançado em 25 de setembro de 2017. Caramba.
fonte
apply plugin: 'com.google.gms.google-services'
no meu build.gradle (com google-services: 4.1.0)Conforme mencionado pelo @PSIXO em um comentário, esse pode ser o problema com a versão de dependência do google-services. Para mim mudar,
para
Pode haver algum problema com a versão 4.1.0. Por ter perdido muitas horas com isso, pensei em escrever isso como resposta.
fonte
Se você estiver usando FirebaseUI , não há necessidade de
FirebaseApp.initializeApp(this);
no seu código de acordo com a amostra .Certifique-se de adicionar ao seu build.gradle no nível raiz:
Em seguida, no arquivo Gradle no nível do módulo :
É isso aí. Não precisa mais.
fonte
Você precisa adicionar a dependência do buildscript do Firebase Gradle em build.gradle (no nível do projeto)
e adicione o plugin Firebase para Gradle em app / build.gradle
Fonte: Android Studio Assistant
fonte
Outra solução possível - tente diferentes Android Studio, se você estiver usando alguns betas. Ajudou por mim. O novo Android Studio simplesmente não adicionou o Firebase corretamente. No meu caso, 3.3preview
Após mais algumas investigações, descobri que o problema era que o novo estúdio Android inicia o projeto com a versão mais recente do Google Services e parece que era o problema original. Como @Ammar Bukhari sugeriu, essa mudança ajudou:
caminho de classe 'com.google.gms: google-services: 4.1.0' -> caminho de classe 'com.google.gms: google-services: 4.0.0'
fonte
No meu caso, o plugin de classificação de serviços do Google não estava gerando o
values.xml
arquivo necessário a partir dogoogle-services.json
arquivo. A biblioteca Firebase usa esse arquivo de valores gerado para se inicializar e parece que não gera um erro se o arquivo de valores não puder ser encontrado. Verifique se o arquivo de valores existe no seguinte local e se está preenchido com as seqüências apropriadas do seugoogle-sevices.json
arquivo:e / ou
Para mais detalhes, consulte: https://developers.google.com/android/guides/google-services-plugin
Meu caso específico foi causado pelo uso de uma versão das ferramentas gradle muito avançada para a versão do Android Studio que eu estava executando (ou seja, certifique-se de executar as ferramentas de classificação v3.2.X-YYY com o Android Studio v3.2).
fonte
Não precisamos ligar para
FirebaseApp.initializeApp(this);
qualquer lugar manualmente. e não devemos também.Eu apenas enfrentei o mesmo problema e obtive uma solução inesperada e estranha.
A partir desta resposta:
Eu removi
tools:node="replace"
e está funcionando como charme.fonte
Suponho que haja problemas de compatibilidade com a versão do google-services e firebase.
Alterei no arquivo build.gradle do projeto, a dependência
caminho de classe 'com.google.gms: google-services: 4.1.0' a 4.2.0
e atualizou as dependências build.gradle do módulo para:
implementação 'com.google.firebase: firebase-database: 16.0.6'
implementação 'com.google.firebase: firebase-core: 16.0.7'
Tudo funciona como um encanto, não há necessidade de digitar FirebaseApp.initializeApp (this);
fonte
A razão para isso acontecer é com.google.gms: versão do google-services . Quando eu estava usando o 4.1.0 , enfrentei o mesmo erro. Então eu faço o downgrade da versão. Antes
Depois de
Espero que isso resolva o erro.
fonte
Se você atualizou recentemente o seu Android Studio para a 3.3.1 que tem um problema com as dependências com.google.gms: google-services (Abaixo de 4.2.0), atualize com.google.gms: google-services para 4.2.0.
fonte
Uma das razões para isso acontecer poderia ser o esquecimento de adicionar
android.permission.INTERNET
permissões noAndroidManifest.xml
fonte
para mim, estava atualizando dependências de com.google.gms: google-services dentro de build.gradle para
fonte
Embora a inicialização manual do Firebase
FirebaseApp.initializeApp(this);
faça com que o erro desapareça, ele não corrige a causa raiz, mas alguns problemas estranhos não se resolvem, comocom.google.android.c2dm.permission.RECEIVE
permissão apenas para o GCMUse o plugin Gradle mais recente (por exemplo, o plugin Android 2.2.3 e o Gradle 2.14.1) corrigiu tudo. (É claro que a configuração deve estar correta conforme a documentação do Firebase )
fonte
Meu problema não foi resolvido com este procedimento
Então, tentei outra coisa e agora minha base de firmas foi inicializada com sucesso. Tente adicionar o seguinte no app module.gradle
fonte
Clique em Ferramentas> Firebase para abrir a janela do Assistente.
Clique para expandir um dos recursos listados (por exemplo, Analytics) e clique no link do tutorial fornecido (por exemplo, Registrar um evento do Analytics).
Clique no botão Conectar ao Firebase para conectar-se ao Firebase e adicionar o código necessário ao seu aplicativo.
https://firebase.google.com/docs/android/setup
fonte
Firebase instalado através das ferramentas do Android Studio ... Firebase ...
Fiz a instalação através das ferramentas internas do Android Studio (seguindo os documentos mais recentes do Firebase). Isso instalou as dependências básicas, mas quando eu tentava me conectar ao banco de dados, sempre me dava o erro que eu precisava chamar para inicializar primeiro, mesmo quando:
Eu estava recebendo esse erro, não importa o que fiz.
Finalmente, depois de ver um comentário em uma das outras respostas, mudei o seguinte no meu gradle da versão 4.1.0 para:
Quando fiz isso, finalmente vi um erro que me ajudou:
Esse é o problema. Parece que a versão 4.1.0 não fornece esse erro de compilação por algum motivo - não menciona que há um arquivo google-services.json ausente. Eu não tenho o arquivo google-services.json no meu aplicativo, então eu o adicionei.
Mas, como se tratava de uma atualização que usava um banco de dados de firsbase em tempo real existente, nunca tive que gerar esse arquivo no passado. Eu fui ao firebase e o gerei e o adicionei e ele corrigiu o problema.
Alterado de volta para 4.1.0
Depois que eu descobri tudo isso, mudei a variável classpath de volta (para 4.1.0) e reconstruí-a e ela travou novamente com o erro de que não havia sido inicializada.
Problemas de raiz
fonte
use com.google.gms: google-services: 4.0.1 'em vez de 4.1.0
fonte
mudando
para
Funciona para mim
fonte
Seguindo a resposta de @Gabriel Lidenor, inicializar o aplicativo com o contexto não funciona no meu caso. E se você estiver tentando criar firebase-app sem google-service.json? Portanto, antes de inicializar qualquer número de aplicativo firebase, primeiro é necessário inicializar como;
fonte
Teremos que inicializar o Firebase na função onCreate da classe Application.
}
Código no arquivo de manifesto: -
fonte
Razão e solução: este é o erro comum que você obterá na maioria das vezes. Razão: quando você integra seu projeto ao Firebase, ele adiciona as dependências
e caminho de classe
classpath 'com.google.gms:google-services:4.1.0'
você só precisa atualizá-los
É assim que você pode atualizar
vá para gradle sript e faça isso
fonte