Complete
over 4 years ago

WERETECH-10611

Connect IQ SDK 4.0 Preview 1 - BufferedBitmaps -> Error: Symbol Not Found Error

Hi, is there any breaking change in the interface of BufferedBitmaps?

...simply compiled my watch face app and started the simulator and sadly get this exception:

Error: Symbol Not Found Error
Details: Failed invoking <symbol>
Stack:
- createBufferedBitmaps() at ...

The code simply creates a bufferedBitmap using the default interface:

dummy = new Gfx.BufferedBitmap({:width=>10, :height=>10, :palette=>[color0, color1, color2, color3]});

Parents
  • calling Toybox.Graphics.createBufferedBitmap({:width=>10,:height=>10}) gives

    Error: Symbol Not Found Error
    Details: Could not find symbol 'createBufferedBitmap'

    calling new Toybox.Graphics.BufferedBitmap({:width=>10,:height=>10}) gives

    Error: Symbol Not Found Error
    Details: Failed invoking <symbol>

    These errors are at runtime so I'm guessing its because there are no devices which have CIQ 4.0.0 yet but I would have expected 'new BuffereredBitmap' to work on a device with 3.2 even when using the 4.0.0 SDK or we're not going to be able to use the 4.0.0 SDK to develop for 3.2 devices

    Is there a way to change a device in the emulator as being a 4.0.0 device so we can try out the new createBufferedBitmap stuff?

Comment
  • calling Toybox.Graphics.createBufferedBitmap({:width=>10,:height=>10}) gives

    Error: Symbol Not Found Error
    Details: Could not find symbol 'createBufferedBitmap'

    calling new Toybox.Graphics.BufferedBitmap({:width=>10,:height=>10}) gives

    Error: Symbol Not Found Error
    Details: Failed invoking <symbol>

    These errors are at runtime so I'm guessing its because there are no devices which have CIQ 4.0.0 yet but I would have expected 'new BuffereredBitmap' to work on a device with 3.2 even when using the 4.0.0 SDK or we're not going to be able to use the 4.0.0 SDK to develop for 3.2 devices

    Is there a way to change a device in the emulator as being a 4.0.0 device so we can try out the new createBufferedBitmap stuff?

Children
  • Just confirming that buffered bitmaps must be created with createBufferedBitmap() in 4.0 products.

  • @Travis.ConnectIQ,

    thanks for hint.

    This is a runtime crash in the simulator.

    The eclipse run configuration is set to SDK v3.1 and started for a device class of  the F6X with the SDK 4.0 P1.

    The build is done without any issues but then the simulator crashes with the failure above.

  • Sorry, yes... Graphics.createBufferedBitmap() is only available on devices with 4.x.x SDK support:

    var bufferedBitmap = null;
    if (Graphics has :createBufferedBitmap) {
        bufferedBitmap = Graphics.createBufferedBitmap(params);
    } else {
        bufferedBitmap = new Graphics.BufferedBitmap(params);
    }
    
    

    I'm not sure if we have made devices with 4.x support available. Until then you're kinda stuck.

    It sounds like you've run into a pretty big problem. It looks like a bug report has been filed already. Hopefully we'll be able to look at it soon.