แก้ไขข้อบกพร่องของหน้าปัด

หน้านี้จะอธิบายวิธีแก้ไขข้อบกพร่องของหน้าปัดที่สร้างขึ้นด้วย Watch Face Format รวมถึงอธิบายวิธีตรวจสอบความถูกต้องของ XML ของหน้าปัดและระบุข้อผิดพลาดรันไทม์

ตรวจสอบเอกสาร Watch Face Format ที่ถูกต้อง

เนื่องจากรูปแบบหน้าปัดต้องใช้ XML ที่มีโครงสร้างดีซึ่งเป็นไปตาม XSD ที่เผยแพร่ คุณสามารถตรวจสอบว่าหน้าปัดถูกต้องหรือไม่ และระบุข้อผิดพลาดได้

ใช้เครื่องมือตรวจสอบ XML เพื่อระบุปัญหาในระหว่างกระบวนการสร้าง เครื่องมือนี้ผสานรวมอยู่ในกระบวนการสร้างในหน้าปัดตัวอย่าง

หากคุณกำลังสร้างเครื่องมือสำหรับสร้างหน้าปัด ให้ตรวจสอบว่าเครื่องมือดังกล่าวดำเนินการตรวจสอบ 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