W tym dokumencie opisujemy sposoby rozwiązywania typowych problemów z konfiguracją ustawień prywatności Sandbox na Androidzie. Jeśli zauważysz błąd, którego nie ma w tym przewodniku, powiadom nas o tym.
Niektóre błędy mogą mieć wiele przyczyn. Poniżej znajdziesz listę niektóre z częstych błędów i ich poprawki, ale można napotkać ten sam komunikat o błędzie z innego powodu.
Zanim rozwiążesz problem
Wyłącz aktualizacje konfiguracji urządzenia
podczas rozwiązywania problemów z Piaskownicą prywatności. testowania, pierwszym krokiem powinno być wyłączenie aktualizacji konfiguracji urządzenia. Ten Zapewnia, że urządzenie nie pobiera zaktualizowanych konfiguracji z serwera i nieumyślnie wyłączyć Piaskownicę prywatności na urządzeniu testowym.
Aby wyłączyć aktualizacje konfiguracji urządzeń, użyj tego polecenia:
adb shell device_config set_sync_disabled_for_tests persistent
Jeśli chcesz ponownie włączyć aktualizacje konfiguracji urządzenia po zakończeniu testów, możesz czyli za pomocą tego polecenia:
adb shell device_config set_sync_disabled_for_tests none
Włącz szczegółowe logowanie adservices
Szczegółowe logowanie z usług adservices zapewnia szerszy kontekst dla błędów co widzicie. Aby je włączyć, użyj tego polecenia:
adb shell setprop log.tag.adservices VERBOSE
Sprawdź, czy urządzenie zostało prawidłowo skonfigurowane
Jeśli aktualizacje konfiguracji urządzenia zostały właśnie wyłączone, zalecamy uruchomienie tych kolejnych czynności, by upewnić się, że urządzenie jest prawidłowo skonfigurowane i pozostanie w ten sposób podczas testowania.
- Włącz interfejsy PPAPI za pomocą odpowiednich poleceń adb.
- W zależności od celów zarejestruj swoje urządzenie lub dezaktywuj rejestrację.
Sprawdź kod, aby mieć pewność, że interfejsy PPAPI są dostępne
Możesz dodać do bazy kodu punkty kontrolne, aby upewnić się, że urządzenie prawidłowe wersje aplikacji na potrzeby Piaskownicy prywatności.
Jeśli używasz wersji beta, korzystając z rozszerzeń pakietu SDK, sprawdź prawidłową kompilację i wersja rozszerzenia SDK:
Jeśli używasz wersji beta w bibliotekach Jetpack, inicjowanie
jeśli Piaskownica prywatności jest niedostępna na Twoim urządzeniu, funkcja zwraca null
urządzenia. Na przykład:
Sprawdź, czy w przypadku każdej wersji są dostępne Usługi Google Play:
Wyjątki dotyczące zabezpieczeń
Błędy związane z wyjątkami zabezpieczeń występują zwykle wtedy, gdy coś nie jest upoważnione do uzyskać dostęp do zasobu Piaskownicy prywatności.
Nie wysłano prośby o uprawnienia
Błąd:
Failed to get Ad ID: java.lang.SecurityException: Caller is not authorized to
call this API. Permission was not requested
.
Możliwa przyczyna:
Musisz zadeklarować uprawnienia dostępu do identyfikatora reklamy.
Rozwiązanie:
Zadeklaruj uprawnienia na koncie AndroidManifest.xml
:
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" />
Rozmówca nie jest upoważniony
Błąd:
Failed to find resolveInfo for adServices service. Intent action:
android.adservices.adid.AdIdProviderService
Failed to find AdServices services
Caller not authorized
Możliwa przyczyna:
Urządzenie nie zostało prawidłowo zarejestrowane. Upewnij się, że zostały wykonane wszystkie instrukcje rejestracji, w tym po rejestracji aby skonfigurować urządzenie.
Możliwa przyczyna:
Adresy URL rejestracji nie są takie same.
Rozwiązanie:
- Przejrzyj dane dotyczące rejestracji i sprawdź, czy występują rozbieżności między
URL użyty w kodzie oraz adres URL zarejestrowany na stronie Prywatność
Piaskownica. Możesz na przykład używać atrybutu
https://adtech.example.com/source
ale zarejestrowany adres URL tohttps://adtech.example.com/register_source
- Dostosuj kod, aby pasował do zarejestrowanego adresu URL. Możesz np. dostosować wiersz w przykładowej aplikacji, który ma dołączyć ciąg „/register_source” w adresie URL „/source”.
Jeśli ten błąd nadal się pojawia:
Firmy może nie być na liście rejestracji lub jest zarejestrowana, ale nie ma jej na liście dozwolonych w pliku manifestu aplikacji. Sprawdź, czy Twoja organizacja jest zarejestrowana z Piaskownicą prywatności, wysyłając e-maila na adres android-ps-support@google.com.
Rozmówca jest niedozwolony
Błąd:
Failed to get Ad ID: java.lang.SecurityException: Caller is not authorized to
call this API. Caller is not allowed. Package [package name] is not allowed to
call the API
.
Możliwa przyczyna:
Nazwa pakietu nie znajduje się na liście dozwolonych.
Rozwiązanie:
Zezwalaj na wszystkie nazwy pakietów z listy dozwolonych:
Jeśli używasz bezpośrednio powłoki adb:
Wymienione wcześniej polecenia działają w przypadku bash i innych powłok, ale jeśli uruchomisz narzędzie adb i spróbuj uruchomić polecenia, nie należy zmieniać cytatów. Zamiast tego uruchom te polecenia:
Rozwiązanie:
Dodaj nazwę pakietu do listy dozwolonych:
adb shell device_config put adservices ppapi_app_allow_list [package name]
Sprawdź, czy nazwa pakietu znajduje się na liście dozwolonych:
adb shell device_config get adservices ppapi_app_allow_list
W razie potrzeby możesz usunąć listę dozwolonych przy użyciu tego polecenia:
adb shell device_config delete adservices ppapi_app_allow_list
Wyjątki dotyczące nielegalnego stanu
Nielegalne wyjątki stanu sygnalizują, że metoda została wywołana w wyniku działania niedozwolonego lub w nieodpowiednim momencie, gdy środowisko lub aplikacja nie znajdują się odpowiedni stan dla żądanej operacji.
Wyjątki dotyczące nielegalnych stanów: usługa jest niedostępna
Błąd:
com.example.measurement.sampleapp E Failed binding to measurement service:
java.lang.IllegalStateException: Service is not available
Możliwa przyczyna:
Przełącznik Kill Switch musi być wyłączony.
Rozwiązanie:
Możesz go wyłączyć przy użyciu tego polecenia:
adb shell 'device_config put adservices global_kill_switch false'
Możliwa przyczyna:
Użytkownik nie wyraził zgody.
Rozwiązanie:
Możesz wyświetlać:
adb shell am start -n com.google.android.adservices.api/com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity
Po zakończeniu poprzedniego polecenia przełącz opcję „Włącz Piaskownicę prywatności” na „Wł.”.
Błędy związane z poleceniami adb
Nie udało się znaleźć oferty pracy
Błąd:
Could not find job 14 in package com.google.android.adservices.api/ user 0
Możliwa przyczyna:
Interfejsy API Piaskownicy prywatności nie zostały aktywowane.
Rozwiązanie: przed uruchomieniem tego zadania wywołaj jeden z interfejsów API Piaskownicy prywatności, taki jak
registerSource()
, getTopics()
lub selectAds()
. To połączenie
ale jest to konieczne do aktywowania interfejsu API. Następnie uruchom ponownie jobscheduler 14
.
Możliwa przyczyna:
Trzeba zaktualizować Sklep Google Play.
Rozwiązanie:
- Zaloguj się na urządzeniu lub w emulatorze, korzystając ze swojego konta Google.
- Otwórz Sklep Google Play > ikonę profilu > Ustawienia > Informacje. Pod nagłówkiem Wersja Sklepu Play kliknij Zaktualizuj Sklep Play.
Zgłaszanie zgłoszenia
Jeśli po wykonaniu tych czynności błąd nie ustąpi, prześlij zgłoszenie i podaj następujące informacje:
- Z której wersji korzystasz: wersji przedpremierowej dla programistów czy beta? Jakie to wersje? Interesuje Cię? Kod wersji znajdziesz w sekcji Ustawienia > Informacje o telefonie > Numer kompilacji.
- Jeśli korzystasz z wersji beta, uruchom
adb shell getprop | grep build.version.extensions
i podaj wyniki w zgłoszeniu. - Jaką wersję Usług Google Play masz na urządzeniu? Uruchom
adb shell dumpsys package com.google.android.gms | grep versionName
i dołącz kod jego wyników. - Dołącz pełny raport o błędzie. Pełny raport o błędzie możesz uzyskać, uruchamiając polecenie
adb bugreport
lub postępując zgodnie z instrukcjami.