Risoluzione dei problemi e risoluzione dei problemi Domande frequenti per Android e Firebase

Questa pagina offre suggerimenti e risoluzione dei problemi specifici di Android che potresti riscontrare durante l'utilizzo di Firebase.

Hai altre sfide o non vedi il tuo problema descritto di seguito? Assicurati di consultare le domande frequenti principali di Firebase per ulteriori domande frequenti su Firebase o specifiche del prodotto.

Puoi anche consultare il repository GitHub dell'SDK Android Firebase per un elenco aggiornato dei problemi segnalati e per la risoluzione dei problemi. Ti invitiamo a segnalare anche lì i tuoi problemi relativi all'SDK Android Firebase!

Le informazioni SHA-1 sono richieste dall'autenticazione Firebase (quando si utilizza l'accesso tramite Google o tramite numero di telefono ) e Firebase Dynamic Links . Se non utilizzi queste funzionalità, non è necessario fornire un SHA-1.

Questo errore si verifica se rileviamo che un altro progetto Firebase o Google Cloud contiene un ID client OAuth 2.0 con il nome del pacchetto e SHA-1 che hai specificato. Scopri come risolvere questo errore .

Questo errore in genere significa che nella tua app mancano uno o più riferimenti al repository Maven di Google. Assicurati di includere il repository Maven di Google ( google() ) nel file di configurazione di Gradle.

  • Se il tuo progetto utilizza la sintassi plugins , includila nella sezione plugins nel file settings.gradle.kts o settings.gradle .
  • Se il tuo progetto utilizza la sintassi buildscript , includila sia nella sezione buildscript che in allprojects nel file build.gradle.kts o build.gradle a livello di progetto.

Nel maggio 2021 (Firebase BoM v28.0.0), Firebase ha disabilitato il desugaring per tutte le sue librerie Android (vedi nota di rilascio ).

Questa modifica significa che le build Gradle che utilizzano il plug-in Android Gradle (AGP) v4.2 o versioni precedenti devono abilitare il supporto Java 8. Altrimenti, quando si aggiunge un SDK Firebase, questi progetti Android ottengono il seguente errore di compilazione:

D8: Invoke-customs are only supported starting with Android O (--min-api 26)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle
android {
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}
See https://developer.android.com/studio/write/java8-support.html for details.
Alternatively, increase the minSdkVersion to 26 or above.

Per correggere questo errore di compilazione, puoi seguire una delle due opzioni:

  • Aggiungi le compileOptions elencate dal messaggio di errore al tuo file build.gradle.kts o build.gradle a livello di app .
  • Aumenta la minSdkVersion per il tuo progetto Android a 26 o superiore.

Esistono due possibili ragioni per cui ciò potrebbe accadere: non hai fornito un'e-mail di supporto o ti manca una chiave SHA. Per correggere questo errore, assicurati che tutte queste condizioni siano vere:

Firebase ha i seguenti plugin Gradle:

Nome del plugin Coordinate Maven Ultima versione ID del plug-in
Plug-in dei servizi Google Play com.google.gms:google-services 4.4.1 com.google.gms.google-services
Plug-in per la distribuzione delle app com.google.firebase:firebase-appdistribution-gradle 4.2.0 com.google.firebase.appdistribution
Plug-in Crashlytics com.google.firebase:firebase-crashlytics-gradle 2.9.9 com.google.firebase.crashlytics
Plug-in per il monitoraggio delle prestazioni com.google.firebase:perf-plugin 1.4.2 com.google.firebase.firebase-perf

Ecco come aggiungere un plug-in Firebase a un progetto Android che utilizza ancora la sintassi buildscript :

  1. Nel file Gradle a livello di root (a livello di progetto) ( <project>/build.gradle.kts o <project>/build.gradle ), aggiungi il plugin come dipendenza utilizzando le sue coordinate Maven:

    buildscript {

        repositories
    {
         
    // Make sure that you have the following two repositories
          google
    ()  // Google's Maven repository
          mavenCentral
    ()  // Maven Central repository
       
    }

        dependencies
    {
         
    ...

         
    // Add the Maven coordinates and latest version of the plugin
          classpath
    ("PLUGIN_MAVEN_COORDINATES:PLUGIN_VERSION")
       
    }
    }

    allprojects
    {
     
    ...

      repositories
    {
       
    // Make sure that you have the following two repositories
        google
    ()  // Google's Maven repository
        mavenCentral
    ()  // Maven Central repository
     
    }
    }
    buildscript {

        repositories
    {
         
    // Make sure that you have the following two repositories
          google
    ()  // Google's Maven repository
          mavenCentral
    ()  // Maven Central repository
       
    }

        dependencies
    {
         
    ...

         
    // Add the Maven coordinates and latest version of the plugin
          classpath
    'PLUGIN_MAVEN_COORDINATES:PLUGIN_VERSION'
       
    }
    }

    allprojects
    {
     
    ...

      repositories
    {
       
    // Make sure that you have the following two repositories
        google
    ()  // Google's Maven repository
        mavenCentral
    ()  // Maven Central repository
     
    }
    }
  2. Nel file Gradle del tuo modulo (a livello di app) (di solito <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), aggiungi il plug-in utilizzando il relativo ID plug-in :

    plugins {
        id
    ("com.android.application")

       
    // Add the ID of the plugin
        id
    ("FIREBASE_PLUGIN_ID")
       
    ...
    }
    plugins {
        id
    'com.android.application'

       
    // Add the ID of the plugin
        id
    'FIREBASE_PLUGIN_ID'
       
    ...
    }