Problem of App with real watch FR235

Hi All:

There is an App I already published (https://apps.garmin.com/es-ES/apps/3572b581-9896-4858-bc77-9f7763523b31), which when testing with the help of the simulator works fine, but it crashes on a real watch as one user recently showed me the bad behavior on a video (the app loads but when a button is pressed nothing happens). Having a look at the CIQ_LOG.TXT file, the only thing it shows is the following:

ERROR: Unhandled Exception
DETAILS:
STORE_ID: 3572b58198964858bc779f7763523b31
CALLSTACK:

No details, no callstack, so I have no clue about where to start. The only thing I can think of is a possible problem trying to get values from the App Store, but I already check if it exists or is null as at its first execution those values do not exist. Does any of you have a clue about where can I start or check?

Thanks,

Javier

  • The 235 is really old, and I've seen some odd things with it.  When a user sees something like you are seeing, I suggest rebooting the watch and that usually helps.  There won't be any firmware fixes to that watch....

    Press and hold the upper left button for maybe 15 seconds and the watch will turn itself off.  Then turn it back on.

  • Tell the user to sync the watch in Garmin Connect after the crash. It should sync the stack trace to ERA, and you should be able to see it in ERA Viewer a few minutes later.

  • iirc FR235 is too old for ERA / automated crash reports.

    OP, if the user is willing, you could build a debug version and have them sideload it. Hopefully you should get a stack trace, line number, and the exact type of exception in the log.

  • Actually what's the difference? It'll be in the CIQ_LOG.TXT or in the side-loaded app's own file.txt, but if the watch doesn't write stacktrace because it's too old, then it won't there either. Unless you catch the exception and print it to the log, but even then probably without the stacktrace, probably just the message.

  • If there's no call stack in the CIQ_LOG file, it won't be in the ERA report either.  With ERA, it's just using the debug info to convert the pc values into a friendly call stack in the reports and the basic data comes from when the CIQ_LOG file is synced.

  • Actually what's the difference
    you could build a debug version and have them sideload it.

    iirc, when you build a debug version and sideload it, the crash log contains more information than it would for a release version.

    I believe things like the stack trace and exact exception type are purposely hidden for release versions, in order to avoid leaking information. At least I believe that's the case for the exception type.

    It's possible that the debug version won't reveal any additional information, but it probably wouldn't hurt to try.

    If that doesn't work, OP could add System.println() statements to try to narrow the problem down.

  • if the watch doesn't write stacktrace because it's too old

    I didn't say the watch doesn't write the stack trace because it's too old, it said I think it doesn't support ERA because it's too old. (Yes I realize the 2 things are related, but they're not synonymous.)

    I could be wrong about that, but that's what I said.

  • I have an FR235. Can you make a non-release build and post a link to a side load? How long does it take to fail?

  • Thank you all for the suggestions. I asked the user to install the PRG file and create as well the APP_NAME.txt file so I can have some info that will allow me to have a clue of what is going on.

    Regards,

    Javier

  • Hi again, I was able to receive from the user some more info with a prg file I sent him, and after fixing the last bug I found, now it results that it crashes right at the start, concretely at the following:

    // Load your resources here
        function onLayout(dc as Dc) as Void {
            setLayout(Rez.Layouts.MainLayout(dc));
        }

    Besides, at CIQ log STORE ID is all zeroes, whereas in previous files that he sent me the store Id was a totally differente value:

    ERROR: Symbol Not Found Error
    DETAILS:
    STORE_ID: 00000000000000000000000000000000
    CALLSTACK:
      /Users/jxxx/eclipse-workspace/Marcador_tenis_padel_older_watches/bin/gen/no-device/source/Rez.mcgen (<init>:7)
      /Users/jxxx/eclipse-workspace/Marcador_tenis_padel_older_watches/source/Marcador_tenis_padel_older_watchesView.mc (onLayout:36)

    Could it be that for some reason the generated prg file gets corrupted? Still works on simulator