Depurar um mostrador de relógio

Esta página descreve como depurar um mostrador do relógio criado com o formato de mostrador do relógio. Também explica como validar o XML do mostrador do relógio e identificar erros de execução.

Verificar se há documentos válidos do formato do mostrador do relógio

Como o Formato do mostrador do relógio exige um XML bem estruturado que esteja em conformidade com um XSD publicado, você pode confirmar se o mostrador do relógio é válido ou não e identificar erros.

Use a ferramenta de validação de XML para identificar problemas durante o processo de build. Essa ferramenta é integrada ao processo de build nos mostradores de relógio de exemplo.

Se você estiver criando uma ferramenta para criar mostradores de relógio, verifique se ela realiza a validação XML usando o XSD.

Exemplo de execução manual da ferramenta de validação:

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

Se houver um erro no documento watchface.xml, você vai receber uma mensagem de erro, como neste caso em que height foi escrito incorretamente como 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

O validador identifica a localização (linha 41, coluna 53) do elemento que precisa ser corrigido.

Saiba como adquirir a ferramenta de validação de XML e criá-la para uso.

Identificar erros de tempo de execução

Garantir que o XML seja válido não é suficiente para capturar todos os possíveis problemas.

Por exemplo, o XML pode fazer referência a uma fonte ou um recurso drawable que não existe, ou uma expressão pode ser esperada para produzir um valor numérico, mas resulta em uma string.

Para esses tipos de problemas, usar o Logcat no Android Studio ou pelo ADB é uma boa maneira de conseguir informações mais detalhadas.

Filtre por "tempo de execução" para conferir problemas fatais e não fatais que afetam o mostrador do relógio. Por exemplo, ao especificar um recurso para HourHand que não existe:

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

Ou aqui, ao tentar usar um tema de cores com um erro de digitação:

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