Eseguire il debug di un quadrante

Questa pagina descrive come eseguire il debug di un quadrante creato con il formato Watch Face. Inoltre, spiega come convalidare il codice XML del quadrante e identificare gli errori di runtime.

Verificare la presenza di documenti Watch Face Format validi

Poiché il formato del quadrante richiede un XML ben strutturato conforme a un schema XSD pubblicato, puoi verificare se il quadrante è valido o meno e identificare gli errori.

Utilizza lo strumento di convalida XML per identificare i problemi durante il processo di compilazione. Questo strumento è integrato nel processo di compilazione nei quadranti di esempio.

Se stai creando uno strumento per la creazione di quadranti, assicurati che lo strumento effettui la convalida XML utilizzando l'XSD.

Un esempio di esecuzione manuale dello strumento di convalida:

java -jar wff-validator.jar 2 ~/MyWatchface/res/raw/watchface.xml

Se nel documento watchface.xml è presente un errore, verrà visualizzato un messaggio di errore, come in questo caso in cui height è stato scritto erroneamente come 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

Lo strumento di convalida identifica la posizione (riga 41, colonna 53) dell'elemento che deve essere corretto.

Scopri come ottenere lo strumento di convalida XML e come compilarlo per l'utilizzo.

Identificare gli errori di runtime

Garantire la validità del file XML stesso non è sufficiente per rilevare tutti i potenziali problemi.

Ad esempio, il codice XML potrebbe fare riferimento a una risorsa di tipo drawable o a un carattere che non esiste oppure un'espressione potrebbe essere pensata per produrre un valore numerico, ma genera una stringa.

Per questi tipi di problemi, l'utilizzo di logcat, in Android Studio o tramite ADB, è un buon modo per ottenere informazioni più dettagliate.

Filtra per "runtime" per visualizzare i problemi sia fatali sia non fatali che interessano il quadrante. Ad esempio, qui, quando specifichi una risorsa per HourHand che non esiste:

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

Oppure qui, quando si tenta di utilizzare un tema a colori con un errore di battitura:

W  color has wrong type of source:CONFIGURATION.myTheeeme.2[OBJECT:]
E  Cannot parse theme color. Using theme color WHITE