SDK 8.1 build Issues with API 5.1.x devices?

I have just installed SDK 8.1 having previously been using 7.4.3 up until this point my various watch faces and projects have been compiling and running without any issues.

As part of the installing the new SDK the SDK manager seemed to download new device files as well (this may be key?)

Now when I try to build the watch face for a Descent MK3 43mm device in Visual Studio Code I get an error:

ERROR: descentmk343mm: C:\Users\pbeesley\OneDrive\Personal\eclipse-workspace\GMT4M2\resources-deu\strings\strings.xml: Unable to parse resource file: Invalid byte 1 of 1-byte UTF-8 sequence.

Oddly if I try to do the build in Eclipse I get a different error:

BUILD: ERROR: Unable to parse command line arguments: Unrecognized option: -c

The resource file that it is highlighting as in error in a language file and it does not like the <strings> tag for some reason although nothing ahs changed. In Eclipse it suddenly appears that the -c option to tell it which device the build if for is no longer valid?

If I switch back to SDK 7.4.3 and then build and run for Descent MK3 43mm the watch face works fine once again, although it is using API 5.0.0. When I do a build for Fenix 8, which was previously working, I get the following error: 

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

If I use the Eclipse IDE instead then the Descent MK3 build works however I cannot initiate a Fenix8 build as the 'Chose a Target API Level' dropdown is 'blank'.

Any ideas on what to try next or what I might suddenly be doing wrong?

Thanks

  • Looks like you have "wearable2021" in your manifest.xml, but that's not a real device.  Remove it from your list of target devices

    Did you read what you're replying to?

    manifest has only one device <iq:product id="venu2"/>

    If you (jim_m_58) are wondering why the error message says "0 OUT OF 4 DEVICES BUILT", that would be explained by the fact that venu2 has 4 part numbers.

  • there is no any wearable2021 in manifest but if I add <iq:product id="venu2"/> compiler use wearable2021

    Yup that seems like a bug. I would open a bug report. (But again, in the meantime you should move wearable2021 out of your sdk devices/ folder)

  • it doesn't run.... I can build venu2  only if I add to jungle commented line

  • but then (I've checked it) it impossible to add such file to store... BTW, undefined isn't enough of information....

  • 7.3.1 is OK. It does mean nobody compile any app for venu2 using sdk > 7.3.1?

  • 7.3.1 is OK. It does mean nobody compile any app for venu2 using sdk > 7.3.1?

    If I build/export for venu2 using 8.1.0, the build output says venu2, not wearable2021. It seems to be working fine for me.

    That's why I was wondering if *you* somehow have a device in ConnectIQ/devices/ called wearable2021. If not, you could try searching ConnectIQ/devices/ for the text "wearable2021", as it has to be coming from *somewhere*.

    In the past, there have been preview devices called "wearable..." or something similar, that's why I thought wearable2021 might be some sort of preview device.

  • With 8.1.0 I have no problem testing in the sim for the venu2, doing a build for device for the venu2, or building an iq with the venu2.  I've tried multiple apps and they all work

    Check the folder where your device configs are stored, and if you see a folder for wearable2021 delete it and try again

  • Actually wearable2021 has existed in the past (like I initially guessed).

    My sdkmanager.ini file contains the following lines:

    wearable2021-first-seen=2021-04-14 07:45:33
    smallwearable2021-first-seen=2021-04-14 07:45:33
    wearable2021-hash=105d8ddf9b6bc64c0be976889a7dbb0f
    smallwearable2021-hash=abf1c60c4cbe080a851d044b6a21286e

    default.jungle (a generated file) for some of my SDKs around that time also has references to those devices, meaning they were used by the SDK.

    So yeah, there were in fact two preview devices in 2021, corresponding to the upcoming Venu 2 and Venu 2S. Garmin created these devices so devs could work on them without knowing the details of these then-unannounced devices, which is something they've done a couple of times in the past.

    So again I am asking you whether ConnectIQ/Devices/wearable2021/ exists on your computer. If so, you should move it away or delete it. If not, I guess we have to dig deeper.

    And even if deleting (or moving away) the device folder fixes the problem, I still think it's a bug in the compiler. Which is why you might want to preserve the device folder so you have evidence if you want to open a bug report about this.

  • If I recall they were there for the venu2 and venu2s before they were announced.,

  • yes, I've the same files with wearable2021 and no device wearable2021

    and strange but I still can see era errors with this devices

    First Occurrence: 2024-10-29

    Last Occurrence: 2024-10-29

    Devices:

    Upcoming Wearable: 19.05

    App Versions: 8.9.0