Under Review
over 2 years ago

bug: compiler 4.1.6 included broken parts of the 4.2.0 Beta 1 with -l 3

I just found that sdk 4.1.6 included parts of 4.2.0 Beta 1 that other bugreports reported recently as breaking some apps. More interestingly this inclusion wasn't mentioned in the announcment on 4.1.6.

See: https://forums.garmin.com/developer/connect-iq/i/bug-reports/sdk-4-2-0-beta-1-won-t-compile-appbase-getproperty

import Toybox.Application;
import Toybox.Application.Properties;

function setConfig(key as PropertyKeyType, val as PropertyValueType) as Void {
    MyApp.setProperty(key, val);
}

java -Xms1g -Dfile.encoding=UTF-8 -Dapple.awt.UIElement=true -jar /home/gavriel/Garmin/ConnectIQ/Sdks/connectiq-sdk-lin-4.1.6-2022-11-04-17f8cfdf3/bin/monkeybrains.jar -o bin/MyApp.prg -f /home/gavriel/Garmin/MyApp/monkey.jungle;/home/gavriel/Garmin/MyApp/barrels.jungle -y /home/gavriel/Garmin/developer_key.der -d fr235_sim -w -l 3

ERROR: fr235: /home/gavriel/Garmin/MyApp/source/Config.mc:17,4: '$.Toybox.Application.AppBase.setProperty' is deprecated.

Parents
  • Do the target devices you support all use setValue()?.  If so that's an easy fix. The minSDK doesn't determine the devices.  You do that yourself.

    There are only a few devices below the 2.4.0 level where setValue became available.

    Try reading between the lines, or in this case, reading the actual lines in the OP for once:

    ERROR: fr235: /home/gavriel/Garmin/MyApp/source/Config.mc:17,4: '$.Toybox.Application.AppBase.setProperty' is deprecated.

    Why would Gavriel say he "can't remove setProperty()" if he was only building devices that support setValue()? If that were the case, he might say "I don't want to remove setProperty()"

    As usual:

    - You assume OP made an obvious mistake as opposed to Garmin making a poor design decision or having a bug

    - You assume OP knows much less than you do

    - You fail to properly read the original post

    Your next suggestion will be to drop support for fr235 because it's so old.

Comment
  • Do the target devices you support all use setValue()?.  If so that's an easy fix. The minSDK doesn't determine the devices.  You do that yourself.

    There are only a few devices below the 2.4.0 level where setValue became available.

    Try reading between the lines, or in this case, reading the actual lines in the OP for once:

    ERROR: fr235: /home/gavriel/Garmin/MyApp/source/Config.mc:17,4: '$.Toybox.Application.AppBase.setProperty' is deprecated.

    Why would Gavriel say he "can't remove setProperty()" if he was only building devices that support setValue()? If that were the case, he might say "I don't want to remove setProperty()"

    As usual:

    - You assume OP made an obvious mistake as opposed to Garmin making a poor design decision or having a bug

    - You assume OP knows much less than you do

    - You fail to properly read the original post

    Your next suggestion will be to drop support for fr235 because it's so old.

Children
No Data