App crashes on Fenix 8

I just received a User Feedback report that my app Sail2WIN crashes on startup on a Fenix 8 51mm Solar.

Sail2WIN runs without issues on all Fenix 8 models using the simulator.

I build using SDK 6.4.0 since I don't need the new features offered in the newer SDK releases, 6.4.0 works, and I'd like to avoid introducing new problem to be debugged.

I ran the ERA viewer and see no report of the crash.

Is there a known problem with using SDK 6.4.0 to build for the Fenix 8 models ?

Does anyone have other thoughts about why my app would crash on startup on the Fenix 8 when it runs fine on the Simulator ?

Thanks in advance for any help.

  • I'd use 7.4.3 - the latest production SDK.  I'd worry about missing bug fixes over the last year plus, using a device that wasn't even available back then.

  • Thanks Jim.

    Is there any reason you can think of that older devices wouldn't work correctly when building with 7.4.3 ?

  • Nope.  I tend to move to a new SDK as soon as it's available and have apps that support old and new devices,

  • Great.

    Thanks very much Jim.

  • Is there a known problem with using SDK 6.4.0 to build for the Fenix 8 models ?

    Yes, you need to use a newer SDK to build for Fenix 8. In general, you need to use a newer SDK to build for CIQ 5 devices.

    (If your app is extremely simple it's possible you could get away with using an older SDK, but it's probably not a good idea.)

    There's actually supposed to be a compatibility check in all compilers that prevents them from for building newer devices that they don't support, but it's broken in the 6.* SDKs and some of the earlier 7.* SDKs.

    Garmin is aware of this (and fixed it for a newer 7.* SDK) but they can't fix the older SDKs (because they are apparently not able or willing to re-release them.)

    You can see this if you try to build for a Fenix 8 device using:

    - SDK 7.2.x: you will get an error message saying you need a newer SDK

    ERROR: Device 'fenix843mm' requires API Level '5.0.1'. The current SDK supports up to API Level '5.0.0'. Try updating your SDK using the Connect IQ SDK Manager.

    - SDK 7.3: it will build fine

    - Any SDK earlier than 7.2.x (including 6.*): you won't get any error message and it will apparently build fine (but depending on what API calls you make, your app may crash on a real device).

    Clearly based on the error message in 7.2.x:

    - it is SDK 7.3 which is the minimum required SDK for CIQ 5.0.1 devices, such as Fenix 8

    - Earlier SDKs, including 7.2.x and 6.* are the ones where the compatibility check is broken (at least for CIQ 5.* devices)

    Also, for the record, I believe that SDK 7.1.0 is required for CIQ 5.0.0 devices.


     

    I brought up this up in my earlier bug report: it's great that the compatibility check has been fixed in newer SDKs/compilers, but since the purpose of the check is to prevent old compilers from building new devices which aren't supported, it's too bad that the old SDKs cannot be re-released.

    It's also worth noting this is not the first time people have assumed that SDK 6.* should build for CIQ 5 devices just fine, including someone who literally reported a bug that an app built for a CIQ 5 device using SDK 6.* would mysteriously crash.

    The person wrote this comment...

    > I'm not sure. fr955 works perfectly with SDK 6.x as it did before the device files were updated to CIQ 5.0.0

    ...is the same person who previously posted this bug report:

    > bug: can't use Menu2 in system7 devices in the simulator

    So I don't think it should be taken for granted that all devs will just know that they have to use a newer SDK to build for CIQ 5 devices.

  • Thanks very much for the clarification. That's a real help.

  • Np. In general, it's best to do what jim_m_58 suggested and always use the latest production (non-beta) SDK. Newer SDKs will always support older devices, but the reverse (older SDKs supporting newer devices) is generally not the case.

    Hopefully the compiler compatibility checks will continue to work going forward, so at least if you stick to 7.2.* and later, you should always get an error when trying to build for some newer device that we don't know about yet, with an compiler that's too old.

  • There is only one problem.... The new SDK often requires the newest firmware for device and it means that your app will be unavailable for anyone who doesn't update firmware (e.g. today's problem with gps and restarting devices, draining battery etc.). The same problem will be with APAC devices where new version are publishining months later than wordwide.

    In my opinion if your don't have to use the newest SDK use that you tested your apps, especially that usually apps built with the newer sdk consume more memory... The only reason to use the newest SDK is the newest devices, not supporting by older ones (even you change versions in json configuration).

  • _psx_ Thanks for this.

    Jim & FlowState (and all) -

    I rebuilt with SDK 7.4.3, tested Fenix 8 models among othersf with the simulator and on my watch with no issues, and published an update for my Fenix 8 user.

    His report is - 

    It still isn't working though now it is acting differently.
    Now when i select Sail2WIN it shows your credit screen then proceeds to restart the watch.  i get the triangle screen.  then black.  then the triangle.  then the watch face appears.  No Sail2WIN.  
    I've tried uninstalling and reinstalling twice now.  with the same effect.
    Thoughts ???
  • I also checked the ERA viewer. No crash reports.