ניפוי באגים בתצוגת שעון

בדף הזה נסביר איך לנפות באגים בתצוגת שעון שנוצרה באמצעות פורמט תצוגת השעון. בנוסף, נסביר איך לאמת את קובץ ה-XML של תצוגת השעון ולזהות שגיאות בסביבת זמן הריצה.

בדיקה של מסמכים תקינים בפורמט Watch Face Format

הפורמט של תצוגת השעון דורש קובץ XML בעל מבנה תקין שתואמת ל-XSD שפורסם, כך שתוכלו לוודא אם תצוגת השעון תקינה או לא, ולזהות שגיאות.

אפשר להשתמש בכלי לאימות XML כדי לזהות בעיות במהלך תהליך ה-build. הכלי הזה משולב בתהליך ה-build במסכי השעון לדוגמה.

אם אתם מפתחים כלי ליצירת תצוגות שעון, חשוב לוודא שהכלי מבצע אימות XML באמצעות XSD.

דוגמה להרצה ידנית של כלי האימות:

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

אם יש שגיאה במסמך watchface.xml, תופיע שגיאה, למשל במקרה הזה height נכתב בטעות כ-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

המאמת מזהה את המיקום של הרכיב שצריך לתקן – שורה 41, עמודה 53.

איך מקבלים את הכלי לאימות XML ובונים אותו לשימוש

זיהוי שגיאות בסביבת זמן הריצה

לא מספיק לוודא שהקובץ ה-XML תקין כדי לזהות את כל הבעיות האפשריות.

לדוגמה, קובץ ה-XML עשוי להפנות לגופן או למשאב גרפי שלא קיים, או שביטוי אמור להניב ערך מספרי אבל במקום זאת הוא מניב מחרוזת.

כדי לקבל מידע מפורט יותר לגבי בעיות מהסוג הזה, מומלץ להשתמש ב-logcat ב-Android Studio או דרך ADB.

מסננים לפי 'זמן ריצה' ותוכלו לראות בעיות קריטיות ולא קריטיות שמשפיעות על תצוגת השעון. לדוגמה, כאן, כשמציינים משאב עבור HourHand שלא קיים:

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

או במקרה הזה, כשמנסים להשתמש בנושא צבע עם שגיאת הקלדה:

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