Export with sdk 4.2.4

Hij I'm trying to export my project with sdk 4.2.4 to also include newer devices and also be able to use the new functionalities.

But when I'm now trying to the build throws an error and when I build for that specific device in debug mode the build finishes just fine, but when I build in release mode it doesn't.

And when I check the error file log.zip it states the following but it makes no sense though.

Compiler internal exceptions: 1
    Generating code for unsupported operation 'null'.
    
com.garmin.monkeybrains.compiler2.CompilerException: Generating code for unsupported operation 'null'.
	at com.garmin.monkeybrains.compiler2.codegen.FunctionCodeGenerator.evaluate(FunctionCodeGenerator.java:851)
	at com.garmin.monkeybrains.compiler2.codegen.FunctionCodeGenerator.evaluate(FunctionCodeGenerator.java:1202)
	at com.garmin.monkeybrains.compiler2.codegen.FunctionCodeGenerator.evaluate(FunctionCodeGenerator.java:1192)
	at com.garmin.monkeybrains.compiler2.codegen.FunctionCodeGenerator.processNode(FunctionCodeGenerator.java:732)
	at com.garmin.monkeybrains.compiler2.codegen.FunctionCodeGenerator.processNode(FunctionCodeGenerator.java:478)
	at com.garmin.monkeybrains.compiler2.codegen.FunctionCodeGenerator.process(FunctionCodeGenerator.java:329)
	at com.garmin.monkeybrains.compiler2.codegen.FunctionCodeGenerator.process(FunctionCodeGenerator.java:162)
	at com.garmin.monkeybrains.compiler2.CodeGenerator.generateCode(CodeGenerator.java:318)
	at com.garmin.monkeybrains.compiler2.project.ProjectBuilder.runCodeGeneration(ProjectBuilder.java:536)
	at com.garmin.monkeybrains.compiler2.Compiler2.build(Compiler2.java:1501)
	at com.garmin.monkeybrains.compiler2.Compiler2.buildProject(Compiler2.java:709)
	at com.garmin.monkeybrains.Monkeybrains.runCompiler2(Monkeybrains.java:1441)
	at com.garmin.monkeybrains.Monkeybrains.compileApplication(Monkeybrains.java:1419)
	at com.garmin.monkeybrains.Monkeybrains.run(Monkeybrains.java:2066)
	at com.garmin.monkeybrains.Monkeybrains.simpleMain(Monkeybrains.java:272)
	at com.garmin.monkeybrains.Monkeybrains.main(Monkeybrains.java:301)
Compiler Warnings: 66
    WARNING: venu: The launcher icon (30x30) isn't compatible with the specified launcher icon size of the device 'venu' (60x60). Image will be scaled to the target size.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\Helpers.mc:15,12: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\Helpers.mc:20,16: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\List.mc:26,4: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\List.mc:42,4: Cannot determine if container assignment is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\List.mc:48,4: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\List.mc:52,4: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\List.mc:56,4: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\List.mc:62,6: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\List.mc:70,6: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:53,12: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:56,14: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:56,14: Cannot determine if container assignment is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:59,16: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:59,16: Cannot determine if container assignment is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:71,14: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:71,14: Cannot determine if container assignment is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:73,14: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:74,16: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:74,16: Cannot determine if container assignment is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:133,4: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\MatchGame.mc:197,4: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\match.mc:57,2: '$.Toybox.ActivityRecording.SUB_SPORT_MATCH' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\match.mc:95,8: Local variable 'i' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\match.mc:131,12: Local variable 'previous_rally' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\lib\match.mc:268,8: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\modules\AppState.mc:38,8: '$.Toybox.Application.AppBase.getProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\modules\AppState.mc:42,8: '$.Toybox.Application.AppBase.setProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\modules\ScreenRegion.mc:23,8: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\modules\ScreenRegion.mc:24,8: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\GameResultView.mc:76,8: Local variable 'clockTime' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\GameResultView.mc:140,8: Local variable 'won_text' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\GameResultView.mc:143,8: Local variable 'score_text' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\GameResultView.mc:146,8: Local variable 'elapsed_time_text' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\GameResultView.mc:148,8: Local variable 'steps_taken_text' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\GameResultView.mc:151,8: Local variable 'score_match_text' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\GameResultView.mc:203,8: Local variable 'delegate' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\GameResultView.mc:212,8: '$.Toybox.Application.AppBase.getProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:28,4: Local variable 'message' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:57,4: Local variable 'textCenter' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:89,4: '$.Toybox.Application.AppBase.getProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:109,4: '$.Toybox.Communications.emptyMailbox' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:111,6: '$.Toybox.Application.AppBase.setProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:123,8: '$.Toybox.Application.AppBase.setProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:124,8: '$.Toybox.Application.AppBase.setProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:156,8: '$.Toybox.Application.AppBase.getProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\InitialView.mc:158,8: '$.Toybox.Application.AppBase.getProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:39,8: Local variable 'yes' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:102,8: Cannot determine if container assignment is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:131,12: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:133,12: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:161,12: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:162,16: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:163,16: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:165,16: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:166,16: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:230,8: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:250,8: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:344,20: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:350,20: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:386,8: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:388,16: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:396,13: Cannot determine if container access is using container type.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:465,8: Local variable 'delegate' is not used.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\MatchViewFocus.mc:474,8: '$.Toybox.Application.AppBase.getProperty' is deprecated.
    WARNING: venu: C:\Users\CorvanDoorn\source\Garmin\garmin-squash-iq\source\views\ResultView.mc:96,6: '$.Toybox.Application.AppBase.getProperty' is deprecated.

The last sdk that does build succesful is 4.1.5 which does not have the functionality I want to add.

Hopefully anybody can shine some light on this for me.

  • Looks to me you are getting warnings from type checking which is on by default in newer SDKs.

    As a test add

    project.typecheck=0

    to your monkey.jungle file and try again.  This will turn off type checking for that project

  • Ok  I did this. Ans I fixed all the warnings that still came up and now it still won't build.

    And I only still have the error left. :-(

  • What do you see in the VS C Output window right before the error?  What's the last device that is shown?

  • In this case it's Venu. I'm building specifically for venu device to get this output.

    this is my manifest file maybe threre's something wrong in there.

    <?xml version="1.0"?>
    <!-- This is a generated file. It is highly recommended that you DO NOT edit this file. -->
    <iq:manifest xmlns:iq="http://www.garmin.com/xml/connectiq" version="3">
      <iq:application entry="appname" id="sppif" launcherIcon="@Drawables.LauncherIcon" minApiLevel="3.2.0" name="@Strings.application_name" type="watch-app" version="1.0.18.3">
        <iq:products>
          <iq:product id="epix2"/>
          <iq:product id="fenix6"/>
          <iq:product id="fenix6pro"/>
          <iq:product id="fenix6s"/>
          <iq:product id="fenix6spro"/>
          <iq:product id="fenix6xpro"/>
          <iq:product id="fenix7"/>
          <iq:product id="fenix7s"/>
          <iq:product id="fenix7x"/>
          <iq:product id="fr245"/>
          <iq:product id="fr245m"/>
          <iq:product id="fr255"/>
          <iq:product id="fr255m"/>
          <iq:product id="fr255sm"/>
          <iq:product id="fr55"/>
          <iq:product id="fr645"/>
          <iq:product id="fr645m"/>
          <iq:product id="fr745"/>
          <iq:product id="fr935"/>
          <iq:product id="fr945"/>
          <iq:product id="fr955"/>
          <iq:product id="fr965"/>
          <iq:product id="fr945lte"/>
          <iq:product id="marqadventurer"/>
          <iq:product id="marqathlete"/>
          <iq:product id="marqaviator"/>
          <iq:product id="marqcaptain"/>
          <iq:product id="marqcommander"/>
          <iq:product id="marqdriver"/>
          <iq:product id="marqexpedition"/>
          <iq:product id="marqgolfer"/>
          <iq:product id="venu"/>
          <iq:product id="venu2"/>
          <iq:product id="venu2plus"/>
          <iq:product id="venu2s"/>
          <iq:product id="venusq"/>
          <iq:product id="venusqm"/>
          <iq:product id="vivoactive3"/>
          <iq:product id="vivoactive3m"/>
          <iq:product id="vivoactive4"/>
          <iq:product id="vivoactive4s"/>
        </iq:products>
        <iq:permissions>
          <iq:uses-permission id="Communications"/>
          <iq:uses-permission id="Fit"/>
          <iq:uses-permission id="FitContributor"/>
          <iq:uses-permission id="Sensor"/>
        </iq:permissions>
        <iq:languages>
          <iq:language>eng</iq:language>
        </iq:languages>
        <iq:barrels/>
      </iq:application>
    </iq:manifest>

  • But what do you see in the output window when you are exporting?  The device before the error is likely the one causing the error.  And it could be the ww or APAC version.

    Are your devices all up to date and do you have all the devices you list in the manifest?

  • When I export I got the following output before it crashes

    WARNING: Debug logging is disabled for export.
    ERROR: venu: A critical error has occurred. Please re-run the Monkey C Compiler with logging enabled and file a report with the Connect IQ support team ([email protected]).
    ERROR: Failed to export application for device id: 'venu'.
  • I finally found what it. I was moving file after file to a different project and then building it to see if the error occurred. When I copied a file with tests the application woulden't build any more. So I removed that file from the other project and now it finally builds again. 

    Thanks for all the help. It helped ruling out other things.

  • hi mates,

    I use this thread because I don't want to open another one since it is related with the SDK 4.2.4

    I use VSC (up to date) with the Garmin 1.0.9

    on my SDK manager it is set to 4.2.4

    but when I want to export, the pop up says that is using 4.2.1.

    Did I miss to set something else in VSC?

  • No, it's a bug.  I told Garmin about it a while back. I see 4.2.1 and don't even have that SDK on my system!

  • thanks! so we can assume it is just a displaying issue and the latest (the one selected) is used?