Rozwiązywanie typowych problemów z Menedżerem danych logowania

Ten przewodnik zawiera listę typowych kodów błędów i ich opisów związanych z Credential Manager oraz informacje o ich przyczynach.

Kod błędu i opis Przyczyna

android.os.TransactionTooLargeException

Jest to spowodowane znanym problemem, w którym interfejs credentialManager.getCredential() API na Androidzie 14 i nowszych nie wyświetla okna logowania, gdy na urządzeniu jest kilka kont Google. Ten problem występuje w przypadku GetGoogleIdOption, a nie GetSignInWithGoogleOption. Ten problem został rozwiązany w usługach Google Play w wersji 24.40.XX i nowszej.

CreateCredentialCancellationException

Użytkownik anulował rejestrację lub pobieranie klucza dostępu.

Użytkownik nie chce tworzyć ani używać danych logowania. Możesz teraz dostosować interfejs, aby zaoferować alternatywną metodę logowania, lub przejść do następnych kroków w procesie.

GetCredentialCancellationException

Proces pobierania danych logowania został zakończony, ponieważ nie uzyskano niezbędnej autoryzacji użytkownika. Najczęściej zdarza się to, gdy użytkownik ręcznie anuluje proces logowania, ale może też oznaczać, że żądanie nie zostało autoryzowane z powodu ograniczeń technicznych. Ten błąd oznacza brak zgody, więc nie próbuj automatycznie ponownie wysyłać żądania, ponieważ może to negatywnie wpłynąć na wrażenia użytkowników. Deweloperzy powinni jednak monitorować częstotliwość występowania tego wyjątku. Duża liczba „anulowań” może w rzeczywistości wskazywać na nieprawidłową konfigurację, np. brakujący lub nieprawidłowy zakres, który uniemożliwia prawidłowe działanie interfejsu autoryzacji. Jeśli zauważysz nieoczekiwane trendy, sprawdź parametry żądania i konfigurację [podmiotu ufającego][2].

Uwaga: komunikat o błędzie może się różnić w zależności od typu danych logowania:

  • W przypadku kluczy dostępu komunikat o błędzie może brzmieć „Rejestracja lub pobieranie klucza dostępu zostało anulowane przez użytkownika”.
  • W przypadku Zaloguj się przez Google komunikat o błędzie może brzmieć „Działanie zostało anulowane przez użytkownika”.

CreateCredentialCustomException lub GetCredentialCustomException

Podczas korzystania z pakietu SDK innej firmy do wywoływania interfejsu API za pomocą obiektu żądania, który jest podklasą CreateCustomCredentialRequest lub GetCustomCredentialOption, mogą wystąpić błędy. Jeśli tak się stanie, sprawdź w pakiecie SDK stałe niestandardowego typu wyjątku, które pasują do e.type. Jeśli nie znajdziesz dopasowania, możesz bezpiecznie odrzucić wyjątek lub go zarejestrować.

CreateCredentialInterruptedException lub GetCredentialInterruptedException

Operacja mogła zostać przerwana, ponieważ użytkownik przeszedł do ustawień, aby ponownie skonfigurować menedżery haseł. Do przerwy mogły się przyczynić też inne powody. Spróbuj jeszcze raz.

CreateCredentialUnknownException

Podczas zapisywania hasła znaleziono odpowiedź o błędzie z jednego kliknięcia 16: [28431] Pomijanie zapisywania hasła, ponieważ użytkownik prawdopodobnie otrzymał prośbę o autouzupełnianie w Androidzie.

Ten błąd występuje tylko w przypadku Androida 13 i starszych wersji, gdy Google jest wyznaczonym dostawcą autouzupełniania. W takich przypadkach użytkownicy otrzymają od autouzupełniania prośbę o zapisanie hasła, które zostanie zapisane w Menedżerze haseł Google. Ważne jest to, że dane logowania zapisane za pomocą Autouzupełniania z Google są synchronizowane dwukierunkowo z interfejsem Credential Manager API. Dlatego możesz bezpiecznie zignorować ten błąd.

CreatePublicKeyCredentialDomException i GetPublicKeyCredentialDomException

Prawdopodobnie wyjątek DOM zawiera bardziej szczegółowy typ domError. Więcej informacji znajdziesz w artykule o mapowaniu na WebAuthn DomException.

CreatePublicKeyCredentialDomException i GetPublicKeyCredentialDomException

Nie można zweryfikować przychodzącego żądania.

Serwer menedżera haseł nie rozpoznaje identyfikatora pakietu aplikacji. Wskazuje to na potencjalny problem z integracją po stronie serwera, a konkretnie z konfiguracją linku do zasobu cyfrowego. Sprawdź dokładnie identyfikator pakietu i SHA w pliku Digital Asset Links.

CreatePublicKeyCredentialDomException:

Nie udało się utworzyć klucza podczas rejestracji

Ten problem może wystąpić, gdy użytkownik zamknie okno dialogowe blokady ekranu podczas rejestracji.

CreateCredentialNoCreateOptionException

Ten konkretny wyjątek oznacza, że użytkownik nie ma skonfigurowanego prawidłowego menedżera haseł. Ten błąd nie jest spowodowany ręcznym anulowaniem przez użytkownika, ale jest osobną awarią.

CreatePublicKeyDomException i GetPublicKeyCredentialDomException

Użytkownik anulował rejestrację klucza dostępu.

Użytkownik anulował pobieranie klucza dostępu.

Ten problem może wystąpić, gdy użytkownik zamknie okno dialogowe odcisku palca podczas rejestracji lub pobierania klucza dostępu.

GetCredentialProviderConfigurationException i CreateCredentialProviderConfigurationException

getCredentialAsync nie znaleziono zależności dostawcy

Nie znaleziono zależności dostawcy w przypadku funkcji createCredentialAsync

Brak zależności androidx.credentials:credentials-play-services-auth:<latest-version>.

GetCredentialUnsupportedException lub CreateCredentialUnsupportedException

Urządzenie nie obsługuje menedżera danych logowania

Sprawdź, czy biblioteka danych logowania jest zaktualizowana do wersji 1.2.1 lub nowszej.

GetPublicKeyCredentialException

Nie udało się odszyfrować danych logowania

Ten problem występuje podczas próby użycia klucza dostępu po wylogowaniu się z kont Google i ponownym zalogowaniu. Poproś użytkownika o ponowne zalogowanie się na konto Google na urządzeniu.

NoCreateOptionException

Ten wyjątek jest oczekiwanym zachowaniem, gdy użytkownik nie ma na urządzeniu skonfigurowanych żadnych danych logowania za pomocą klucza dostępu lub nie ma skonfigurowanego menedżera haseł.

NoCredentialException

Nie znaleziono pasujących danych logowania

Ten wyjątek jest zgłaszany w tych sytuacjach:

  • Wartość parametru setFilterByAuthorizedAccounts jest ustawiona na „true”, a na urządzeniu nie ma autoryzowanych kont.
  • Na urządzeniu nie ma zalogowanych kont (nie dodano żadnych kont lub wymagają one ponownego uwierzytelnienia).
  • Interfejs arkusza nie pojawia się, jeśli na urządzeniu wyłączono prośby o zalogowanie na dowolnym koncie. To ustawienie globalne, które znajdziesz w sekcji Ustawienia konta Google > Zaloguj się przez Google, musi być włączone, aby interfejs arkusza u dołu ekranu wyświetlał się na dowolnym koncie. Nie ma to wpływu na działanie przycisku.

Nie można utworzyć klucza dostępu, ponieważ zaszyfrowane dane są zablokowane

Użytkownik musi zresetować dane po stronie serwera Chrome. Dane te obejmują zakładki i ustawienia Chrome, a także zapisane hasła i klucze dostępu. Aby dowiedzieć się więcej o danych przechowywanych w Chrome, wejdź na stronę Dane z Chrome na Twoim koncie.

  1. Wejdź na chrome.google.com/sync.
  2. U dołu wybierz Wyczyść dane.
  3. Na urządzeniu włącz synchronizację w Chrome.

On Begin Sign In Failure: 8: nieznany błąd wewnętrzny.

Urządzenie może nie być prawidłowo skonfigurowane na koncie Google. Być może występuje problem ze sposobem tworzenia pliku JSON klucza dostępu. Dokładnie sprawdź implementację.

Nie udało się pobrać konta synchronizacji

Usługi Google Play w wersji 24.40.XX i nowszych będą udostępniać bardziej informatywne kody błędów. Na przykład zamiast komunikatu „Nie udało się uzyskać konta synchronizacji” rozmówcy będą teraz otrzymywać komunikat o błędzie anulowania.