This page describes how to debug a watch face built with the Watch Face Format. It also explains how to validate your watch face XML and identify runtime errors.
Check for valid Watch Face Format documents
As the Watch Face Format requires well-structured XML that conforms to a published XSD, you can confirm whether your watch face is valid or not, and identify errors.
Use the XML validation tool to identify issues during the build process. This tool is integrated into the build process in the sample watch faces.
If you are building a tool for creating watch faces, be sure that the tool performs XML validation using the XSD in your tool.
An example of running the validation tool manually:
java -jar wff-validator.jar 2 ~/MyWatchface/res/raw/watchface.xml
If there is an error in your watchface.xml
document, you'll see an error, such
as in this case where height
has been misspelled as 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
The validator identifies the location—line 41, column 53—of the element that needs to be corrected.
Learn how to obtain the XML validator tool and build it for use.
Identify runtime errors
Ensuring the XML itself is valid is not enough to capture all potential issues.
For example, your XML might reference a font or drawable resource that does not exist, or an expression might be expected to produce a numeric value, but instead results in a string.
For these types of issues, using logcat, either in Android Studio or through ADB is a good way to get more detailed information.
Filter on "runtime" and you'll be able to see both fatal and nonfatal issues
affecting the watch face. For example, here, when specifying a resource for
HourHand
which does not exist:
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
Or here, when trying to use a color theme with a typo in it:
W color has wrong type of source:CONFIGURATION.myTheeeme.2[OBJECT:]
E Cannot parse theme color. Using theme color WHITE