Primeiros passos com o Firebase Crashlytics

Neste guia de início rápido, descrevemos como configurar o Firebase Crashlytics no seu app com o SDK do Firebase Crashlytics para que você receba relatórios de erros abrangentes no Console do Firebase. Com o Crashlytics para Android, você recebe relatórios sobre falhas, erros não fatais e erros do tipo "O app não está respondendo" (ANR).

A configuração do Crashlytics exige tarefas no Console do Firebase e no ambiente de desenvolvimento integrado, como adicionar um arquivo de configuração do Firebase e o SDK do Crashlytics. Para concluir a configuração, você precisará forçar uma falha de teste para enviar seu primeiro relatório de erros ao Firebase.

Antes de começar

  1. Adicione o Firebase ao projeto para Android, caso ainda não tenha feito isso. Se você não tiver um app Android, faça o download de um app de exemplo.

  2. Recomendado: para ter recursos como usuários sem falhas, registros de navegação estrutural e alertas de velocidade, ative o Google Analytics no seu projeto do Firebase.

    • Caso seu projeto atual do Firebase não tenha o Google Analytics ativado, ative na guia Integrações das suas > Configurações do projeto no Console do Firebase.

    • Se você estiver criando um novo projeto do Firebase, ative o Google Analytics durante o fluxo de trabalho de criação do projeto.

Etapa 1: adicionar o SDK do Firebase Crashlytics ao seu app

Usando a BoM do Firebase para Android, declare a dependência da biblioteca Android do Crashlytics no seu arquivo do Gradle (nível do app) do módulo, que geralmente é app/build.gradle.

Para uma experiência ideal com o Crashlytics, recomendamos ativar o Google Analytics no seu projeto e adicionar o SDK do Firebase para Analytics ao seu app.

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:30.1.0')

    // Declare the dependencies for the Crashlytics and Analytics libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics'
    implementation 'com.google.firebase:firebase-analytics'
}

Com a BoM do Firebase para Android, seu app sempre usará versões compatíveis das bibliotecas do Firebase para Android.

(Alternativa) Declare as dependências das bibliotecas do Firebase sem usar a BoM.

Se você preferir não usar a BoM do Firebase, especifique cada versão das bibliotecas do Firebase na linha de dependência correspondente.

Caso você use várias bibliotecas do Firebase no seu app, recomendamos usar a BoM para gerenciar as versões dessas bibliotecas para garantir a compatibilidade de todas elas.

dependencies {
    // Declare the dependencies for the Crashlytics and Analytics libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics:18.2.11'
    implementation 'com.google.firebase:firebase-analytics:21.0.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:30.1.0')

    // Declare the dependencies for the Crashlytics and Analytics libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics-ktx'
    implementation 'com.google.firebase:firebase-analytics-ktx'
}

Com a BoM do Firebase para Android, seu app sempre usará versões compatíveis das bibliotecas do Firebase para Android.

(Alternativa) Declare as dependências das bibliotecas do Firebase sem usar a BoM.

Se você preferir não usar a BoM do Firebase, especifique cada versão das bibliotecas do Firebase na linha de dependência correspondente.

Caso você use várias bibliotecas do Firebase no seu app, recomendamos a BoM para gerenciar as versões dessas bibliotecas para garantir a compatibilidade de todas elas.

dependencies {
    // Declare the dependencies for the Crashlytics and Analytics libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics-ktx:18.2.11'
    implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0'
}

Etapa 2: adicionar o plug-in do Firebase Crashlytics ao seu app

  1. No arquivo build.gradle no nível do projeto, adicione o plug-in do Gradle para Crashlytics como uma dependência do buildscript.

    buildscript {
        repositories {
            // Check that you have Google's Maven repository (if not, add it).
            google()
        }
    
        dependencies {
            // ...
    
            // Check that you have the Google services Gradle plugin v4.3.2 or later
            // (if not, add it).
            classpath 'com.google.gms:google-services:4.3.10'
    
            // Add the Crashlytics Gradle plugin
            classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.0'
        }
    }
    
    allprojects {
        repositories {
            // Check that you have Google's Maven repository (if not, add it).
            google()
        }
    }
  2. No arquivo build.gradle no nível do app, aplique o plug-in do Gradle para Crashlytics:

    apply plugin: 'com.android.application'
    apply plugin: 'com.google.gms.google-services' // Google services Gradle plugin
    
    // Apply the Crashlytics Gradle plugin
    apply plugin: 'com.google.firebase.crashlytics'
    

Etapa 3: forçar uma falha de teste para concluir a configuração

Para concluir a configuração do Crashlytics e ver os dados iniciais no painel do Console do Firebase, é necessário forçar uma falha de teste.

  1. Adicione um código ao app que possa ser usado para forçar uma falha no teste.

    É possível usar o código a seguir no MainActivity do seu app para adicionar um botão que, quando pressionado, causa uma falha. O botão é chamado de "Testar falha".

    Java

    Button crashButton = new Button(this);
    crashButton.setText("Test Crash");
    crashButton.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {
           throw new RuntimeException("Test Crash"); // Force a crash
       }
    });
    
    addContentView(crashButton, new ViewGroup.LayoutParams(
           ViewGroup.LayoutParams.MATCH_PARENT,
           ViewGroup.LayoutParams.WRAP_CONTENT));
    

    Kotlin+KTX

    val crashButton = Button(this)
    crashButton.text = "Test Crash"
    crashButton.setOnClickListener {
       throw RuntimeException("Test Crash") // Force a crash
    }
    
    addContentView(crashButton, ViewGroup.LayoutParams(
           ViewGroup.LayoutParams.MATCH_PARENT,
           ViewGroup.LayoutParams.WRAP_CONTENT))
    
  2. Crie e execute seu app.

  3. Force a falha de teste para enviar o primeiro relatório de erros do app:

    1. Abra o app no dispositivo ou emulador de teste.

    2. No app, pressione o botão "Testar falha" que você adicionou usando o código acima.

    3. Depois que o app falhar, reinicie-o para que ele possa enviar o relatório de falhas ao Firebase.

  4. Acesse o painel do Crashlytics no Console do Firebase para ver a falha do teste.

    Se você atualizou o console e ainda não consegue ver a falha de teste após cinco minutos, ative a geração de registros de depuração para ver se o app está enviando relatórios de falha.


Pronto. O Crashlytics agora está monitorando seu app em busca de falhas, erros não fatais e ANRs. Acesse o painel do Crashlytics para ver e analisar todos os relatórios e estatísticas.

Próximas etapas

  • Faça a integração com o Google Play para filtrar os relatórios de erros do app Android pela faixa do Google Play diretamente no painel do Crashlytics. Isso permite que você configure o painel para verificar versões específicas.