Error: Symbol Not Found Error / initialize() at Rez:54

Hi,

My program is running in simulator for Edge 830 and Forerunner 945 OK. But when I try and switch to vivoactive 3....

Error: Symbol Not Found Error
Details: Failed invoking <symbol>
Stack: 
  - initialize() at Rez:54 0x10001ec2 

One of Jims Posts seems to say one might get this when one tries to run with a device whose firmware doesn't have right support.
My app manifest says need 3.1.x; devices.xml says vivoactive 3 is 3.1.6 at FW 720. 

Any ideas?
So error is an an autogenerated file; where is that file located?
How to get a idea where the fault is?

Regards,

Owain

  • just tried vivoactive4 and works fine; but what is up with 3?

  • If it's in simulator, it is not a firmware issue! (Firmware runs on the devices.)

    It does sound like a bug, but you'll have to wait for someone who knows more than me...

  • So error is an an autogenerated file; where is that file located?

    That file is generated in memory. It is never written to file.

    My program is running in simulator for Edge 830 and Forerunner 945 OK. But when I try and switch to vivoactive 3....

    I'm not sure what is going on. I wouldn't expect this to fail in the simulator unless you are running the simulator from an older SDK with a .PRG generated with a newer SDK.

    What SDK version are you building and testing with?

  • 3.1.9 the latest.

    This is a great shame; vivoactive 3 is the lowest spec device we need to support. These are the devices to be given to our test department. Would be really good to get  a handle on this to know if we can use this device; which we cannot if it does it run in simulator.

  • Since this is in the sim, while you could use the debugger, I tend to just put in println calls in a few places to see how far things are getting.  Maybe start with initialize() in your AppBase, initialize() in your view, and where you are using Rez.

  • I see same error in simulator trying to run for a 935; yet it works for a 945, 245, vivoactive4

    Maybe my app doesn't like the digit 3. So 935 fails,  vivoactive 3 fails.

    Joking aside; is simulator reporting it supports functionality for some watches yet it does not. As a developer we have to rely on simulator because we can not buy every single Garmin variant that is said to be supported. We have to test the variants in the simulator.

    I only just tried 935 because we had a survey of customers and 935 came back as the popular device.

    Travis; could you please open a ticket for us. I would like to see our programs running in the simulator ok for us for all devices which your tools say should be supported. Also you say the auto generated Rez file is kept in memory and never written to disk. This means as a developer I have no idea where it's gone wrong and have to turn to support to try and find a solution.

    Would be good to see some progress on this one.

  • Did you find anything by adding println calls?  If this was a common bug, many others would have seen it.  Something about your code I suspect.

    Does your app support a background process by any chance?  Have the background permission?

  • Travis; could you please open a ticket for us.

    I can create a bug report, but without some code to reproduce, some assembly output, a .prg file, or some hint about what is happening in your app, it isn't likely to get any traction. Right now all that I know is:

    1. The error originates in the generated Rez code
    2. The problem exists on the simulated vivoactive3 and fr935 devices, but not on edge830, fr245, fr945, or vivoactive4.

    That isn't much to go on, and I'll spend a ton of time trying to create a test app that will produce this error. If you're willing, PM me a link to your source code and I can take a look at it this afternoon.

    Also you say the auto generated Rez file is kept in memory and never written to disk. This means as a developer I have no idea where it's gone wrong and have to turn to support to try and find a solution.

    While there is some truth to this, it is not 100% accurate. The Rez data is the output of our resource compiler. This means that the problem relates to the resources you are defining in the resource xml files. You can also see the byte codes generated by the compiler if you compile with -g. This output will include the compiled resources and all of the code in your application.

    Once I have some idea about what the actual problem is, I can see about having the compiler generate a more informative error message or providing more data.

  • class NovaThingyApp extends Application.AppBase {
        private var _bleDelegate;
        private var _profileManager;
        private var _modelFactory;
        private var _viewController;
    
        function initialize() {
        	Sys.println("NovaThingy - initialize start");
            AppBase.initialize();
            Sys.println("NovaThingy - initialize end");
        }
    
        // onStart() is called on application start up
        function onStart(state) {
        	Sys.println("NovaThingy - onStart - start");
            _profileManager = new ProfileManager();
            Sys.println("NovaThingy - onStart - 1");
            _bleDelegate = new ThingyDelegate( _profileManager );
            Sys.println("NovaThingy - onStart - 2");

    NovaThingy - initialize start
    NovaThingy - initialize end
    NovaThingy - onStart - start
    
    Error: Symbol Not Found Error
    Details: Failed invoking <symbol>
    Stack: 
      - initialize() at Rez:54 0x10001f96 

    Hi Jim,

    I did follow your advice and add some printlns. They kind of hint the issue is when we create a ProfileManager; so I added a constructor to that file; which only does a println; never see that before the error comes.

    Is startup single threaded or does the garmin OS do some magic with the resource stuff in parallel; because I am not doing anything with resources according to sequence of printlns.

    Hopefully Travis will have some  ideas also.

    Regards,

    Owain

  • Ok, it's now clear as day.

    You're trying to use CIQ BLE.

    That's not available on the vivoactive 3.  The va3m, yes.

    This isn't a bug, but maybe the error could be more descriptive.