Risoluzione dei problemi e domande frequenti per Android e Firebase

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

Hai altri problemi o non trovi il tuo problema descritto di seguito? Assicurati di consultare le domande frequenti principali su Firebase per altre domande frequenti generali o specifiche per prodotto.

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

Le informazioni SHA-1 sono richieste da Firebase Authentication (quando si utilizza Accedi con Google o Accedi con il numero di telefono) e Firebase Dynamic Links. Se non utilizzi queste funzionalità, non devi fornire un valore 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 l'SHA-1 che hai specificato. Scopri come risolvere questo errore.

In genere, questo errore indica 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 Gradle.

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

A maggio 2021 (Firebase BoM v28.0.0), Firebase ha disattivato la rimozione del codice non necessario per tutte le sue librerie Android (vedi nota di rilascio).

Questa modifica significa che le build di Gradle che utilizzano il plug-in Android per Gradle (AGP) versione 4.2 o precedente devono attivare il supporto di Java 8. In caso contrario, quando aggiungi un SDK Firebase, questi progetti Android presentano 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 risolvere questo errore di compilazione, puoi seguire una delle due opzioni:

  • Aggiungi il valore compileOptions elencato nel messaggio di errore al file build.gradle.kts o build.gradle a livello di app.
  • Aumenta minSdkVersion per il tuo progetto Android a 26 o versioni successive.

Questo problema potrebbe verificarsi per due motivi: non hai fornito un'email di assistenza o manca una chiave SHA. Per correggere questo errore, assicurati che tutte le seguenti condizioni siano vere:

Firebase dispone dei seguenti plug-in Gradle:

Nome plug-in Coordinate Maven Versione più recente ID plug-in
Plug-in Google Play Services com.google.gms:google-services 4.4.2 com.google.gms.google-services
Plug-in App Distribution com.google.firebase:firebase-appdistribution-gradle 5.1.1 com.google.firebase.appdistribution
Plug-in Crashlytics com.google.firebase:firebase-crashlytics-gradle 3.0.3 com.google.firebase.crashlytics
Plug-in Performance Monitoring 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 directory principale (a livello di progetto) (<project>/build.gradle.kts o <project>/build.gradle), aggiungi il plug-in come dipendenza utilizzando le relative 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 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 suo 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'
        ...
    }