Na tej stronie znajdziesz porady i sposoby rozwiązywania problemów z Androidem, które mogą wystąpić podczas korzystania z Firebase.
Masz inne problemy lub nie widzisz swojego problemu w poniższej liście? Aby dowiedzieć się więcej o Firebase lub poszczególnych usługach, zapoznaj się z najczęstszymi pytaniami dotyczącymi Firebase.
Aktualną listę zgłoszonych problemów i sposobów ich rozwiązania znajdziesz też w repozytorium GitHub pakietu SDK Firebase na Androida. Zachęcamy też do zgłaszania tam problemów związanych z pakietem SDK Firebase na Androida.
Czy podczas dodawania aplikacji na Androida do projektu Firebase muszę podać kod SHA-1?
Informacje SHA-1 są wymagane przez Firebase Authentication (w przypadku korzystania z logowania przez Google lub logowania za pomocą numeru telefonu) i Firebase Dynamic Links. Jeśli nie korzystasz z tych funkcji, nie musisz podawać wartości SHA-1.
Jak rozwiązać ten błąd: „W innym projekcie istnieje już klient OAuth2 dla tej nazwy pakietu oraz tego certyfikatu SHA-1”?
Ten błąd występuje, gdy wykryjemy, że inny projekt Firebase lub Google Cloud zawiera identyfikator klienta OAuth 2.0 z podaną przez Ciebie nazwą pakietu i certyfikatem SHA-1. Dowiedz się, jak naprawić ten błąd.
Gdy dodaję Firebase do projektu na Androida, pojawia się błąd „Nie można znaleźć”.
Ten błąd zwykle oznacza, że w aplikacji brakuje co najmniej jednego odwołania do repozytorium Maven Google. Pamiętaj, aby uwzględnić repozytorium Maven firmy Google (google()
) w pliku konfiguracyjnym Gradle.
- Jeśli Twój projekt używa składni
plugins
, umieść ją w sekcjiplugins
w plikusettings.gradle.kts
lubsettings.gradle
. - Jeśli Twój projekt używa składni
buildscript
, uwzględnij ją w sekcjachbuildscript
iallprojects
plikubuild.gradle.kts
lubbuild.gradle
na poziomie projektu.
Gdy dodaję pakiet SDK Firebase do projektu na Androida, pojawia się błąd dotyczący obsługi invoke-custom i włączania desugaringu.
W maju 2021 r. (Firebase BoM w wersji 28.0.0) Firebase wyłączyła desugaring we wszystkich swoich bibliotekach na Androida (patrz informacje o wersji).
Ta zmiana oznacza, że kompilacje Gradle, które korzystają z wtyczki Androida Gradle (AGP) w wersji 4.2 lub starszej, muszą mieć włączone wsparcie dla Javy 8. W przeciwnym razie podczas dodawania pakietu SDK Firebase te projekty na Androida będą miały następujący błąd kompilacji:
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.
Aby rozwiązać ten problem, możesz wykonać jedną z tych czynności:
- Dodaj wymienione w komunikacie o błędzie wartości
compileOptions
do plikubuild.gradle.kts
lubbuild.gradle
na poziomie aplikacji. - Zwiększ wartość
minSdkVersion
w projekcie na Androida do 26 lub wyższej.
Po opublikowaniu aplikacji logowanie przez Google wyświetla błąd „12500:”. Jak mogę go naprawić?
Może się tak zdarzyć z 2 przyczyn: nie podano adresu e-mail pomocy lub brakuje klucza SHA. Aby naprawić ten błąd, sprawdź, czy wszystkie te warunki są spełnione:
- Dodałeś/dodałaś adres e-mail do obsługi w ustawieniach ogólnych projektu w konsoli Firebase.
- Dodałeś/dodałaś odcisk palca certyfikatu SHA-1 z klucza produkcyjnego/klucza wersji do aplikacji Firebase na Androida w konsoli Firebase (kliknij
Ustawienia projektu , przewiń w dół do sekcji Twoje aplikacje i wybierz aplikację na Androida). - Dodałeś/dodałaś odcisk cyfrowy certyfikatu SHA-1 z konsoli Google Play do aplikacji Firebase na Androida w konsoli Firebase (kliknij
Ustawienia projektu , przewiń w dół do sekcji Twoje aplikacje i wybierz aplikację na Androida).
Jak dodać wtyczki Firebase do projektu na Androida za pomocą składni buildscript
?
Firebase ma te wtyczki Gradle:
Nazwa wtyczki | Współrzędne Maven | Najnowsza wersja | Identyfikator wtyczki |
---|---|---|---|
Wtyczka Usługi Google Play | com.google.gms:google-services |
4.4.2 | com.google.gms.google-services |
Wtyczka App Distribution | com.google.firebase:firebase-appdistribution-gradle |
5.1.1 | com.google.firebase.appdistribution |
Wtyczka Crashlytics | com.google.firebase:firebase-crashlytics-gradle |
3.0.3 | com.google.firebase.crashlytics |
Wtyczka Performance Monitoring | com.google.firebase:perf-plugin |
1.4.2 | com.google.firebase.firebase-perf |
Aby dodać wtyczkę Firebase do projektu na Androida, który nadal używa składni buildscript
:
W pliku Gradle na poziomie katalogu głównego (na poziomie projektu) (
<project>/build.gradle.kts
lub<project>/build.gradle
) dodaj wtyczkę jako zależność, używając jej współrzędnych 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 } }W pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj
<project>/<app-module>/build.gradle.kts
lub<project>/<app-module>/build.gradle
) dodaj wtyczkę, używając jej identyfikatora: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 ' ... }