Estou testando a nova ferramenta Crash: https://firebase.google.com/docs/crash/
Depois de seguir as etapas, o aplicativo é iniciado e trava dizendo:
05-18 17:28:18.870 28743 28743 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5156)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.-wrap1(ActivityThread.java)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.google.firebase.provider.FirebaseInitProvider.zza(Unknown Source)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5153)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: ... 10 more
Android studio
>Build
>Clean Project
Respostas:
1
Adicione o applicationId ao build.gradle do aplicativo:
E que o Projeto Limpo -> Construir ou Reconstruir Projeto
2. Se sua minSdkVersion <= 20 ( https://developer.android.com/studio/build/multidex )
Use o Multidex corretamente.
build.gradle do aplicativo
manifest.xml
3)
Se você usar uma classe Application personalizada
manifest.xml
fonte
cordova platform add android
)?cordova platform add android
. Eu acho que ele será corrigido assim que o cordova for atualizado. Ps. Não estou usando o Firebase.Eu estava com o mesmo problema em dispositivos com SDK <22, mas para mim o motivo é o MultiDex, o
MultiDex.install
deve estar noattachBaseContext
método.Se você estiver usando o MultiDex, tente o seguinte:
app / build.gradle:
fonte
A resposta aceita não resolveu meu problema.
Se você estiver usando o Multidex, seu Aplicativo deverá se estender em
MultiDexApplication
vez deApplication
.MyApplication.java
AndroidManifest.xml
Espero que ajude.
fonte
Se você tiver o mesmo problema, mas já tiver o
applicationId
conjunto configuradobuild.gradle
, também poderá tentar o seguinte:Build
>Clean Project
fonte
build
diretório funcionou para mim. Parece que foi atrapalhado pela minha última atração no repositório.Eu tive o mesmo problema em dispositivos Pre Lollipop. Para resolver isso, fiz o seguinte. Enquanto isso, eu estava usando o multiDex no projeto.
1. adicione isso para build.gradle no módulo: app
2. adicione essa dependência
3.Em seguida, no aplicativo principal
4. No arquivo de manifestos
Isso funciona para mim. Espero que isso ajude voçe tambem :)
fonte
você deve ter certeza
para adicionar esta linha ao seu manifesto
https://developer.android.com/studio/run/index.html#instant-run
fonte
Não inclua toda a biblioteca de serviços do jogo, mas use a que você precisa. Substitua a linha em seu build.gradle :
com o apropriado das APIs do Google Play Services , como por exemplo:
fonte
Adicione isso ao seu build.gradle no nível do módulo:
Se você substituir a
Application
classe, estenda-a deMultiDexApplication
:Se você não pode estendê-lo da
MultiDexApplication
classe, substitua oattachBaseContext()
método da seguinte maneira:E não execute nada antes de
MultiDex.install(this)
ser executado.Se você não substituir a
Application
classe, edite seu arquivo de manifesto da seguinte maneira:fonte
Isso deve funcionar:
Passo 1:
Passo 2:
Etapa 3: faça outra aula
Etapa 4: adicione esta linha no manifesto
fonte
No meu caso, o problema foi resolvido adicionando esta linha ao módulo build.gradle:
// ADICIONE ISTO NA PARTE INFERIOR
Fonte
fonte
build.gradle
dependencies { classpath 'com.google.gms:google-services:3.0.0' }
No meu caso, o problema ocorreu após a migração para o AndroidX. Por alguma razão, o aplicativo estava chamando MultiDex.install () com reflexão:
Mudei o pacote de
android.support.multidex.MultiDex
paraandroidx.multidex.MultiDex
. Funcionou.fonte
Em vez de adicionar manualmente o nome do pacote no
build.gradle
, você pode fazer o seguinte:primeiro adicione esta linha no início
Em seguida, adicione isso no defaultConfig
E, finalmente, adicione o método doExtractStringFromManifest
Como existem muitos comentários do Cordova na resposta, se você estiver trabalhando com o Cordova, não deve editar o seu caso
build.gradle
, ele tem um comentário no início que dizPortanto, se você estiver usando um Cordova, a melhor coisa a fazer é atualizar para o cordova-android 5.1.0 ou superior, onde essas alterações já estão presentes.
fonte
O meu foi porque o Firebase SDK no arquivo Gradle foi definido para uma versão numérica errada.
Eu removi as debs do Firebase da Gradle e as reinstalei novamente usando
Firebase Assistant
fonte
Vá para a configuração do Android Studio (pressionando
Ctrl+Alt+S
nas janelas), pesquiseInstant Run
e desmarqueEnable Instant Run
.Desabilitando
Instant Run
e executando seu aplicativo novamente, o problema será resolvido.fonte
Para reagir com o aplicativo nativo, o erro foi:
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider"
ele estava sendo obtido apenas para dispositivos com a versão Android <~ 4.4Resolveu por apenas substituindo
Application
emMainApplication.java
comMultiDexApplication
NOTA:
import android.support.multidex.MultiDexApplication;
fonte
Eu adicionei o seguinte código no arquivo proguard.
e funcionou no meu caso.
fonte
no meu caso, esqueço-me de adicionar (ou excluir acidentalmente) o núcleo do firebase no build gradle
fonte
Eu tenho esse erro apenas em dispositivos com API menor que 21. No meu caso, tive que trabalhar com um projeto em que a
multiDexEnabled
opção inbuild.gradle
já estava definidatrue
. Eu verifiquei o arquivo dex no APK e o número de métodos referenciados era menor que 64k, portanto, o projeto não precisa ser multidex, portanto, definamultiDexEnabled
comofalse
. Esta solução funcionou para mim.fonte