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

  • In your 8.1.0 SDK folder, open bin/default.jungle.

    - Does devicesPath point to the correct devices folder?

    - Is there any reference to wearable2001 or smallwearable2001? (there shouldn't be)

    - If you build for venu2s, do you have the same problem, except with smallwearable2001 instead of wearable2001?

    As a last resort, you could move away your entire ConnectIQ/ folder (containing Sdks/ and Devices/) and redownload all the devices and the last couple of SDKs.

    I would still open a bug report because clearly it's a bug.

  • - Does devicesPath point to the correct devices folder?

    yes

    - Is there any reference to wearable2001 or smallwearable2001? (there shouldn't be)

    only sdkmanager-config.ini and default.jungle for sdk form 3.2.5 to 7.4.3. e.g.

    # Set the wearable2021 family qualifier
    wearable2021 = $(round-416x416)
    wearable2021.resourcePath = $(wearable2021.resourcePath);resources-wearable2021
    wearable2021.personality = $(wearable2021.personality);$(devicesPath)\wearable2021;resources-wearable2021

    # Set the wearable2021 language-specific string resources
    wearable2021.lang.ara = $(wearable2021.lang.ara);resources-wearable2021-ara
    ....

    As a last resort, you could move away your entire ConnectIQ/ folder (containing Sdks/ and Devices/) and redownload all the devices and the last couple of SDKs.

    I plan to do it

  • That certainly fixed my problem. When I upgraded to API 8.1 in VS the encoding seems to have changed. Some files were UTF-8 with BOM and others UTF-16 LE. I hadn't noticed on the status bar that the encoding had changed. Saving the file back as UTF-8 has fixed it an now all the 5.0 and 5.1 API devices build correctly with SDK 8.1.

    Thanks!!

  • default.jungle for sdk form 3.2.5 to 7.4.3

    That's interesting because it suggests wearable2021/ was still in your devices/ folder when you first built with 7.4.3 (which cannot be too long ago). Unless there is some other place that the SDKs are picking up this device from.

    I only have references to wearable2021/smallwearable2021 in very old SDKs such as 3.2.5 and 4.x. At some point I must have deleted those devices.

    If you open the command palette and select "Monkey C: Edit Products", does wearable2021 show up as a selectable product?

  • That's interesting because it suggests wearable2021/ was still in your devices/ folder when you first built with 7.4.3 (which cannot be too long ago). Unless there is some other place that the SDKs are picking up this device from.

    I still use 7.3.1

    I only have references to wearable2021/smallwearable2021 in very old SDKs such as 3.2.5 and 4.x. At some point I must have deleted those devices.

    From time to time I have a problem with devices and clearing device's directory...

    If you open the command palette and select "Monkey C: Edit Products", does wearable2021 show up as a selectable product?

    no the last one

    But as I have managed to build app with 7.3.1 I'm ready to clear devices folder again...

  • After downloading devices everything is okm again.