Na tej stronie opisujemy, jak debugować tarczę zegarka utworzoną za pomocą formatu tarczy zegarka. Dowiesz się z niego też, jak zweryfikować kod XML tarczy zegarka i zidentyfikować błędy czasu wykonywania.
Sprawdź, czy dokumenty są zgodne z formatem tarczy zegarka
Format tarczy zegarka wymaga dobrze sformatowanego kodu XML zgodnego z opublikowanym plikiem XSD. Dzięki temu możesz sprawdzić, czy tarcza zegarka jest prawidłowa, oraz zidentyfikować błędy.
Użyj narzędzia do sprawdzania poprawności pliku XML, aby wykrywać problemy podczas procesu kompilacji. To narzędzie jest zintegrowane z procesem kompilacji w przykładowych tarczach zegarka.
Jeśli tworzysz narzędzie do tworzenia tarcz zegarka, upewnij się, że waliduje ono XML-a za pomocą pliku XSD.
Przykład ręcznego uruchamiania narzędzia do walidacji:
java -jar wff-validator.jar 2 ~/MyWatchface/res/raw/watchface.xml
Jeśli w dokumencie watchface.xml
wystąpi błąd, zobaczysz komunikat o błędzie. W tym przypadku błąd dotyczy słowa height
, które zostało zapisane niepoprawnie jako hight
:
INFO: DWF Validation Application Version 1.0. Maximum Supported Format Version #2
SEVERE: [Line 41:Column 53]: cvc-complex-type.3.2.2: Attribute 'hight' is not allowed to appear in element 'PartDraw'.
INFO: ❌ FAILED : watchface.xml is NOT valid against watch face format version #1
Weryfikator wskazuje lokalizację (wiersz 41, kolumna 53) elementu, który wymaga poprawienia.
Dowiedz się, jak pobrać narzędzie do sprawdzania kodu XML i je skompilować.
Wykrywanie błędów w czasie wykonywania
Sprawdzanie poprawności samego pliku XML nie wystarczy, aby wykryć wszystkie potencjalne problemy.
Plik XML może na przykład odwoływać się do czcionki lub zasobu rysowanego, który nie istnieje, albo wyrażenie może zwracać wartość liczbową, a zamiast tego zwracać ciąg znaków.
W przypadku tego typu problemów warto użyć narzędzia logcat w Android Studio lub ADB, aby uzyskać bardziej szczegółowe informacje.
Filtruj według „czasu wykonywania”, aby zobaczyć zarówno krytyczne, jak i niekrytyczne problemy wpływające na tarczę zegarka. Na przykład tutaj, gdy określasz zasób dla HourHand
, który nie istnieje:
E Invalid resource ID 0x00000000.
E FATAL EXCEPTION: main
Process: com.google.wear.watchface.runtime, PID: 29115 android.content.res.Resources$NotFoundException: Resource ID #0x0
Albo tutaj, gdy próbujesz użyć motywu kolorów z błędem:
W color has wrong type of source:CONFIGURATION.myTheeeme.2[OBJECT:]
E Cannot parse theme color. Using theme color WHITE