Hoping to get some guidance from the experienced developers here - as I don't have much experience debugging remotely:
A user reported a crash in the on-device menu of my watchface on his Fenix 8 47mm Amoled (fenix847mm, sideloaded). It occurs when he simply scrolls through the menu without selecting any option. Based on the crash log, it is an unhandled exception in the draw() function of the Drawable used as the icon of an IconMenuItem in a Menu2. The stack trace points near (1 byte off) a call to Dc.clear().
The menu works fine in the simulator (including for fenix847mm) and on the physical watches I have seen it run on. According to the API documentation there's no exception thrown from Dc.clear() or any of the other system calls in this function, and I can't see anything wrong in my own simple code either.
Without the icons (when I replace the three instances of IconMenuItem with MenuItem), the user reports it works on his fenix847mm.
With a try-catch block around all the code in the draw() function of the drawable, it also doesn't crash on the user's watch.
My questions are:
- Is there anything wrong with my drawable class?
- How can I further investigate the issue without access to the device on which it happens? The user is able to retrieve crash logs (the CIQ_LOG.YML file) from his device but does not see the text from the println() statements I added in his log file (the .TXT file).
- In this situation, would you just implement a try-catch block and move on?
Watchface: github.com/.../SwissRailwayClock
Issue: github.com/.../32
Drawable: github.com/.../MenuIcon.mc