These release notes apply to an earlier version of the software and the corresponding documentation. Some links may no longer be active.

Native SDK 10.0 Gold Release Notes

This document contains the following sections:

Upgrading to Gold

  • If you already have the BlackBerry 10 Native SDK installed, you can install the latest version without uninstalling the previous version. However, you must select the latest version to use.
    1. Start the QNX Momentics IDE and click Window > Preferences.
    2. Click QNX.
    3. In the Select SDK drop-down list, select the latest SDK. For example, select BlackBerry 10 Native SDK for the Gold release. This option is available from the drop-down list on the toolbar as well.
    4. Click Apply.
    5. Click OK.

    If you experience problems upgrading from an older version of the SDK, consider uninstalling the previous version before installing the latest BlackBerry 10 Native SDK.

    In this release, the IDE automatically detects when your device OS version and SDK version are different and displays a warning. You can then choose to find an SDK version that matches your device OS version.

New in this release

See also: Changes in this release

Advertising Service

  • Banner ads - You can integrate advertising into your apps and generate additional revenue by using the Advertising Service.

Application permissions

  • You can now use the following app permissions. For more information, see the documentation for app permissions.
    • Narrow swipe up (narrow_landscape_exit)
    • Phone (access_phone)
    These permissions are currently not available from the BAR descriptor file UI editor in the IDE. However, you can add them manually by opening the BAR descriptor file in the Source tab of the UI editor and adding <permission system="true">permission_element_value</permission>.


  • Gamepad controllers - Game developers can now receive gamepad and joystick events using the Screen and Windowing Library. Discovering gamepads and handling gamepad input events is done the same way as with other touch events. The SteelSeries Free and Nintendo Wii Remote controllers all work out of the box with this API. Bluetooth HID gamepads are also supported. Check out the Gamepad sample.
  • navigator.h - Added the following
    • navigator_event_get_orientation_size_width()
    • navigator_event_get_orientation_size_height()
  • Screen and windowing - Changed the gamepad controller properties SCREEN_PROPERTY_ANALOG0 and SCREEN_PROPERTY_ANALOG1 to return errors if analog sticks are not present

BBM Social Platform

  • BBM support in the simulator - The BlackBerry 10 Device Simulator provides BBM support. You can use the device simulator to test your BBM connected apps. For more information, see the BBM documentation.


MD5 Checksum validation

We've added the ability to validate the BlackBerry 10 Native SDK installer download using this checksum file. Use any checksum tool that supports MD5 to validate that your download is correct.

QNX Momentics Tool Suite

  • Windows 8 - Windows 8 is now supported.
  • Mac OS X - Mac OS X Mountain Lion is now supported.
  • Improved build performance of native projects - By default, projects are set up to build one file at a time. To significantly improve build performance, you can use the QNX Momentics IDE parallel build feature.
  • To enable the parallel build feature:
    1. In the C/C++ perspective, right click the project name and select Properties.
    2. Click C/C++ Build and then click the Behavior tab.
    3. Click the Use parallel build check box.
    4. For Windows and Linux, you can use the Use optimal jobs number setting. On Mac, you can use the Use parallel jobs setting. Using too many jobs causes system instability so the ideal setting on Mac is to use the number of hardware threads available on the host machine and subtract one. For example, on a quad core machine with hyper threading, the number of jobs should be set no higher than 7 (4 * 2 - 1).

  • New Project wizard - The New Project wizard combines BlackBerry projects so you can more easily create the project you want. For more information, see Create a BlackBerry C/C++ project
  • IDE updates - The IDE provides an update mechanism to update either or both of the BlackBerry Native SDK or the IDE without reinstalling.
  • Memory Analysis tool - The Memory Analysis tool supports a memory leak collection control which you can activate at any time. You can also change tracing settings dynamically.
  • Device Log - You can use the Device Log view when debugging applications to view log information when using the slogger2 API.
  • BlackBerry WebWorks - You can create BlackBerry WebWorks native extension projects to enable your BlackBerry WebWorks apps to access native APIs. For more information, see Creating custom extensions for BlackBerry 10 apps.
  • SDK selector - The SDK selector on the toolbar allows you to switch quickly between different OS versions if multiple SDKs are installed.
Back to Top

Changes in this release

Application Integration

  • Invocation Framework - To properly support extended character sets, the invocation framework updated its URI handling to enable clients and targets to better coordinate their use of URIs. The invocation framework will now expect valid URIs to be passed in their encoded form to enable the targets to interpret them properly. For non-file URIs, the updated handling will ensure that the framework does not alter the URIs and delivers them as-is. With this change, the targets receiving URIs in invocations can expect to receive encoded URIs and will be required to decode them.


  • Icon size - The icon size for BlackBerry 10 Dev Alpha devices has changed from 150x150 to 114x114. For more information, see the UI guidelines.

BlackBerry Platform Services Library

  • deviceinfo.h
    • Added the following typedefs:
      • deviceinfo_details_t
      • deviceinfo_identifying_details_t
    • An application must have the read_device_identifying_information capability to populate a device_info_identifying_details_t structure.
  • dialog.h
    • Added the following functions:
      • dialog_event_get_alert_checkbox_checked()
      • dialog_set_alert_checkbox_checked()
      • dialog_set_alert_checkbox_label()
    • Deprecated the following functions:
      • dialog_set_size()
      • dialog_set_position()
      • dialog_set_background_alpha()
      • dialog_set_cover_sensitivity()
      • dialog_set_context_menu_coordinates()
      • dialog_set_context_menu_width()
      • dialog_set_context_menu_height()
      • dialog_set_login_username_label()
      • dialog_set_login_password_label()
      • dialog_set_login_show_password()
      • dialog_set_login_show_password_label()
      • dialog_set_password_change_show_password()
      • dialog_set_password_change_show_password_label()
  • geolocation.h
    • Added the following:
      • geolocation_error_t
      • geolocation_Event_get_error_code()
  • mediacommon.h
      • The times defined for media_button_length_t have been updated.
      • mediacontroller_button_up() and mediacontroller_button_down() no longer support MEDIA_BUTTON_HOOK_SWITCH.
  • mediacontroller.h
    • Added mediacontroller_volume_update()
  • navigator.h
    • Added the following:
      • NAVIGATOR_POOLED to navigator event types
      • navigator_rotation_effect()
      • navigator_pooled_response()
  • navigator_invoke.h
    • Added the following:
      • NAVIGATOR_INVOKE_TARGET_TYPE_SELF to the list of target types
      • navigator_invoke_local_path_to_uri()
      • navigator_invoke_uri_to_local_path()
      • navigator_invoke_invocation_get_target_type_mask()
      • navigator_invoke_invocation_set_target_type_mask()
    • Deprecated the following:
      • navigator_invoke_close_viewer()
      • navigator_invoke_event_get_viewer()
      • navigator_invoke_event_get_viewer_relay_data()
      • navigator_invoke_event_get_viewer_relay_message_name()
      • navigator_invoke_event_get_viewer_relay_window_id()
      • navigator_invoke_event_get_window_id()
      • navigator_invoke_query_result_target_get_splash()
      • navigator_invoke_viewer_create()
      • navigator_invoke_viewer_destroy()
      • navigator_invoke_viewer_get_height()
      • navigator_invoke_viewer_get_invocation()
      • navigator_invoke_get_width()
      • navigator_invoke_get_window_id()
      • navigator_invoke_viewer_relay()
      • navigator_invoke_send()
      • navigator_invoke_set_height()
      • navigator_invoke_set_width()
      • navigator_invoke_set_window_id()
    • Removed the following:
      • navigator_invoke_get_invoke_target_filters_result_t
      • navigator_invoke_get_invoke_target_filters_t
      • navigator_invoke_set_invoke_target_filters_t
      • navigator_invoke_target_filter_t
      • navigator_invoke_event_get_get_invoke_target_filters_result_filter()
      • navigator_invoke_event_get_get_invoke_target_filters_result_filters_count()
      • navigator_invoke_event_get_invoke_target_filters_result_target()
      • navigator_invoke_get_invoke_target_filters_create()
      • navigator_invoke_get_invoke_target_filters_destroy()
      • navigator_invoke_get_invoke_target_filters_get_id()
      • navigator_invoke_get_invoke_target_filters_get_target_key()
      • navigator_invoke_get_invoke_target_filters_send()
      • navigator_invoke_get_invoke_target_filters_set_id()
      • navigator_invoke_get_invoke_target_filters_set_target_key()
      • navigator_invoke_set_invoke_target_filters_create()
      • navigator_invoke_set_invoke_target_filters_destroy()
      • navigator_invoke_set_invoke_target_filters_get_filter()
      • navigator_invoke_set_invoke_target_filters_get_filter_count()
      • navigator_invoke_set_invoke_target_filters_get_id()
      • navigator_invoke_set_invoke_target_filters_get_target_key()
      • navigator_invoke_set_invoke_target_filters_send()
      • navigator_invoke_set_invoke_target_filters_set_filter()
      • navigator_invoke_set_invoke_target_filters_set_id()
      • navigator_invoke_set_invoke_target_filters_set_target_key()
    • Removed the following from published documentation:
      • navigator_invoke_query_set_receiver_capabilities()
      • navigator_invoke_query_set_brokering_mode()
      • navigator_invoke_query_get_receiver_cap()
      • navigator_invoke_query_get_brokering_mode()
      • navigator_invoke_query_set_target_type()
  • netstatus.h
    • Added netstatus_interface_details_t
  • notification.h
    • Removed the following from published documentation:
      • notification_message_set_app_id()
      • notification_message_set_event_time()
      • notification_message_set_invocation_launch_in_background()
      • notification_message_set_repeating()
      • notification_message_set_type()
      • notification_message_set_perimeter()
  • soundplayer.h
    • Added soundplayer_play_sound_blocking()
  • virtualkeyboard.h
    • Added VIRTUALKEYBOARD_LAYOUT_DIAL_PAD keyboard layout

Bluetooth Library

  • btdevice.h
    • Added the following functions:
      • bt_rdev_get_address()
      • bt_rdev_get_current_rssi()
    • Deprecated the following function bt_rdev_get_addr(). Use bt_rdev_get_address() instead.
  • btspp.h
    • Added the following function:
      • bt_spp_get_address()

Camera Library

  • camera_api.h
    • Added the error code CAMERA_ENODATA to the data type camera_error_t.
    • Added the new enumerated data type camera_powerdownreason_t.
    • Changed the camera_buffer_t data type's framemeta member from a camera_metapacket_t* to a void*.
  • camera_meta.h
    • Added a new header file to handle metadata in an image.
    • Added the following functions to camera_meta.h to work with metadata:
      • camera_meta_get_exif()
      • camera_meta_get_face_pitch()
      • camera_meta_get_face_roll()
      • camera_meta_get_face_region()
      • camera_meta_get_face_score()
      • camera_meta_get_face_yaw()
      • camera_meta_iterate_metadata()
    • Moved the camera_metaformat_t data type from camera_api.h to camera_meta.h. This movement does not impact binary compatibility.
    • Moved the camera_metapacket_t data type from camera_api.h to camera_meta.h. The data type is now an opaque type and it's functionality is superseded by using the functions available in the camera_meta.h file.

Near Field Communication Library

  • nfc.h
    • Added a new API:
      • nfc_result_t nfc_get_target_connection_id(const nfc_target_t *target, unsigned int *target_connection_id)
  • nfc_se_access.h
    • Added new APIs:
      • nfc_result_t nfc_se_enable_swp()
      • nfc_result_t nfc_se_reader_set_technology_types(uint32_t hSESession, uint32_t technologyTypes)
  • nfc_types.h
    • Added new events:
    • Changed the following types for target_property_type_t to be internal:
      • TAG_PROP_KOVIO_TYPE = 20
      • LLCP_PROP_MODE = 104
      • LLCP_PROP_STATUS = 106

Screen and Windowing Library

  • The Screen and Windowing API now supports gamepad controllers. New properties and a new enumeration, in combination with existing Screen and Windowing API functions, allow the mapping of buttons from different controllers to a common game control layout.
    • Added the following enumeration to allow gamepad button mapping:


  • Added the following API:
    • SCUI_Client

Security Builder Engine

  • Added instructions for complying with FIPS 140-2 by using only accepted protocols and cipher suites.
Back to Top

Fixed in this release



The BlackBerry Platform Services navigator thread no longer quits when MsgReceivePulse returns -1.


If your application handled pausing on the NAVIGATOR_WINDOW_THUMBNAIL event and resuming EGL rendering with eglSwapBuffers() on NAVIGATOR_WINDOW_FULLSCREEN events, your application might have stopped responding on startup.


If an error occurred while using the invoke functions of the BlackBerry Platform Services libraries, errno was not set when BPS_FAILURE was returned.

BBM Social Platform


After blocking a contact from sending application download invitations by selecting "block future invites from <contact>" from a pending application invite, the user was unable to unblock the contact.


You could create more than the maximum allowable three items in an application profile box on a BlackBerry 10 device.


A user could not block future application download invitations from a contact. After selecting "block future invites from <contact>", the contact was still able to send the user invitations.


Profile boxes were not updated in real time. For example, when a contact's profile box was modified, the changes were not immediately updated on the current user's BlackBerry device.



Development Mode was turned off when a device was rebooted and the Hub notification indicated that it was still on.



If you installed the Native SDK on Mac OS X Mountain Lion version 10.8, you received an error message: "installer-bbndk is damaged and can't be opened. You should eject the disk image." and had to change your computer's security settings.


After installing the Mac version of the QNX Momentics IDE on the desktop, the application's shortcut icon was missing.


On a Mac, after you complete your installation of the Native SDK, the QNX Momentics icon now appears in the dock.


On a Mac, you can now install the Native SDK in a location other than the default without having to change the permissions on that directory.



You could not create two contexts with different attributes by calling alcCreateContext(). Errors were produced after attempting to create the second context, you could not call alcOpenDevice(), and sound was not playable in other OpenAL apps.


The function alBufferData() threw an error when called with NULL as the data parameter.

QNX Momentics Tool Suite


When you launched an example project, intermittently you may have only seen a black screen.


When the device log was shut down, it did not clean up all processes such as slog2info.


When importing projects into the QNX Momentics IDE, configurations were removed from the BAR file.


The update manager now allows you to specify that the newest SDK should be used as the default.


An error message no longer displays after you build and run an OpenGL ES app in the QNX Momentics IDE using the "Simulator-Debug" build configuration.


In the QNX Momentics IDE, when a Default Launch Configuration had only a simulator target available, it did not pick it automatically.


The qde utility icon was displayed as an Eclipse icon instead of the QNX Momentics IDE icon.


Previously, you couldn't see the Usage and Bands pages in the Memory Analysis tool and you could not select Snapshots from settings. Now you can enable Snapshots and you can see charts for memory snapshots.


Warnings when building sample apps no longer appear.


The Python pretty printers for the GNU debugger for the GNU libstdc++ now funcation as expected.

Back to Top

Known limitations


  • There is a slight delay between tracks played as part of a playlist (approximately 0.5 seconds), even when the playlist includes only one track that is repeating.


  • Applications using FreeType must add the following include path: $QNX_TARGET/usr/include/freetype2


  • By default, the Native SDK installer creates the installation folder on Windows systems at the root of the C drive. For example: C:\bbndk. To install to the default installation folder on Windows 7, you must log in as a user who has administrator privileges. If you cannot log in as a user with administrator privileges, you must change the installation folder to an alternate folder that you have write access to.
  • When installing and uninstalling the Native SDK on a 64-bit Linux host computer, you may see an error regarding a missing file. You can disregard this error message.
  • To run the installer and the IDE on Ubuntu 64-bit, you need to install the 32-bit libraries: sudo apt-get install ia32-libs. During the installation, answer yes to all the questions.
  • On Linux and Mac computers, the installer might crash when launching with an error similar to the following: "An internal LaunchAnywhere application error has occurred and this application cannot proceed." Unset the PS1 variable and restart the installation program to continue.
  • On Mac computers, you may encounter an issue with incorrect permissions on the BlackBerry SDK installer executable. To launch the installation program, you will first need to manually change the permissions for the installer.
  • When you execute to launch the Native SDK on Ubuntu 11.04 32-bit, you might receive an error:
    "QNX Compiler Configuration Error".
    As a possible fix, update Ubuntu to the latest package by using the Update Manager utility. In addition, ensure your VMware version is up-to-date.


  • The OpenAL 1.1 Specification and Reference incorrectly states that the function alcCloseDevice() will fail if the device's contexts and buffers have not been destroyed. alcCloseDevice() actually destroys any contexts and buffers still associated with the device.
  • The function alcGetIntegerv() does not throw an error when retrieving ALC_MAJOR_VERSION and passing an invalid device pointer.
  • The function alcGetString(device, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER), throws an error where invoked after the device has been closed. It should return the default device and ignore the device parameter.
  • The OpenAL 1.1 Specification and Reference incorrectly states in the description of the function alcGetString(), "Specifying NULL for deviceHandle when asking for ALC_EXTENSIONS will generate an ALC_INVALID_DEVICE error." In fact, no error is generated.
  • The OpenAL 1.1 Specification and Reference incorrectly states in the description of the function alBufferData() that, "An invalid size will result in an AL_INVALID_VALUE error." In fact, calling alBufferData() with an invalid size does not cause the INVALID_VALUE error.
  • When the function alcMakeContextCurrent() is called with an uninitialized ALCcontext pointer, it correctly returns ALC_FALSE, but does not generate an ALC_INVALID_CONTEXT error.
  • The OpenAL Programmer's Guide - OpenAL Versions 1.0 and 1.1 incorrectly lists AL_INVALID_VALUE as a possible error returned by the functions alGenBuffers() and alGenSources() when the array is not large enough to hold the number of items requested. In fact, no error is generated.
  • The function alSource3f() does not throw an AL_INVALID_VALUE error when invalid numbers are passed as parameters. Apps should perform their own validity checking.
  • The function alSourcef() throws an AL_INVALID_VALUE error for valid values when using AL_CONE_INNER_ANGLE and AL_CONE_OUTER_ANGLE.
  • No error is thrown when the function alutLoadWAVFile() is called without a current context.
  • The function alutGetError() does not return ALUT_ERROR_ALC_ERROR_ON_ENTRY when there was already an ALC error on entry to alutLoadMemoryFromFileImage().
  • In the OpenAL Programmers Guide, AL_DATA is incorrectly documented as a valid buffer property. An attempt to retrieve this property through alGetBufferi() and alGetBufferiv() will result in an AL_INVALID_ENUM error.
  • The deprecated function alutLoadWAVMemory() does not return the expected values.
  • The function alGetListenerfv() does not generate an error when called with an invalid value. Apps should perform their own validity checking.
  • The following attributes are set by the device, and cannot be altered using the attribute list of the function alcCreateContext(): ALC_FREQUENCY, ALC_REFRESH, ALC_SYNC, ALC_MONO_SOURCES, ALC_STEREO_SOURCES, ALC_MAX_AUXILIARY_SEN.
  • The OpenAL 1.1 Specification and Reference incorrectly states that the function alGetEnumValue() sets the error code AL_INVALID_VALUE if the specified enumeration cannot be found. In fact, this error is not set when an invalid enumeration value is specified.
  • The OpenAL Programmer's Guide - OpenAL Versions 1.0 and 1.1 incorrectly states that the functions alcSuspendContext() and alcProcessContext() produce the error ALC_INVALID_CONTEXT when called with a null or destroyed context. However, no error is generated.
  • The function alListener3f() does not generate an error when called with a NULL value for the AL_VELOCITY attribute. Apps should perform their own validity checking.
  • The function ALCGetProcAddress() does not return addresses for the specified context extension functions, even for valid functions. It always returns NULL.
  • The function alSourceQueueBuffers() queues invalid buffers. If you pass a NULL buffer to this function, it will queue the buffer and not raise an error, even though the buffer is not valid.


BlackBerry 10 uses OpenSSL 1.0.1, with the following deviations from the standard implementation:

  • TLSv1.2 is not supported.
  • The heartbeat TLS extension has been disabled. This extension is described by RFC 6520
  • The list of default SSL/TLS/DTLS ciphersuites has been altered.
    • Applications using SSL/TLS/DTLS connections to get a default set of ciphersuites unless they explicitly specify which ciphersuites they want to support using SSL_CTX_set_cipher_list() or SSL_set_cipher_list().
    • The default set of ciphersuites has been changed to "ALL:!aNULL:!eNULL:!SRP:!SSLv2" which eliminates the SRP ciphersuites from the standard default set of ciphersuites provided by OpenSSL 1.0.1.
  • TLSv1.1 support is disabled by default.
    • SSL_CTX_new(), which is used to create a new SSL_CTX object for TLS/SSL/DTLS negotiations, has been altered to disable TLSv1.1 support by automatically setting the option SSL_OP_NO_TLSv1_1.
    • TLSv1.1 will be disabled by default when using SSLv23_method(), SSLv23_server_method(), or SSLv23_client_method(). Applications that need TLSv1.1 support can clear the option by calling SSL_CTX_clear_options(ctx, SSL_OP_NO_TLSv1_1) or can use one of the following TLSv1.1-only methods: TLSv1_1_method(), TLSv1_1_server_method(), or TLSv1_1_client_method().


QNX Momentics Tool Suite

  • When you use the Memory Analysis tool, you may see an empty graph with the warning "No graphical input". This is by design for security reasons and this information is unsupported for BlackBerry 10 OS targets.
  • Standard makefile projects cannot be named "makefile". Use a different name for your project.
  • Memory Leaks are only reported when an application exits normally. If it is killed or crashes, memory leaks will not be reported. To report memory leaks in this case, the API should be used.
Back to Top

Known issues

This section lists known issues for the BlackBerry 10 Native SDK, version 10.0.9 Gold.



When writing an NFC tag with a smart poster NDEF message, calls to API functions such as nfc_set_sp_uri and nfc_add_sp_title may produce errors.


You cannot peek through cards correctly when the device is in landscape mode.


If a file's permission is changed to write and invocation is performed, the target application does not get invoked.

BBM Social Platform


When you call bbmsp_user_profile_box_retrieve_icon() to obtain the profile box icon that is registered with BBM Social Platform, the icon is not retrieved.


In the BlackBerry 10 Device Simulator, if you connect to BlackBerry ID through BlackBerry World, and then connect to BlackBerry Messenger, the simulator stays locked in a connecting state.
Workaround: Connect to BlackBerry Messenger before connecting to BlackBerry World or while BlackBerry Messenger is locked in a connecting state, go to Settings > BlackBerry ID, and then login to BlackBerry ID.


Images that use transparency might not appear correctly in the user's list of BBM applications.


When BBM Connect (Settings > Security and Privacy > Application Permissions) is toggled from ON to OFF or from OFF to ON the registration and permission states are not updated.


When a C-only app uses the BBM Social Platform BPS APIs, the compiler requires additional non-C libraries to be added manually (libQtCore and libcpp).


If BBM Connect (Settings Application > Security and Privacy > Application Permissions) for an app is turned off before launching the app, toggling BBM Connect doesn't update the registration status of the app.
Workaround: Turn BBM Connect on before launching the app.



The notifications area of the Hub will constantly flash the red LED when a notification such as entering Development Mode is sent.
Workaround: Wait until the blinking times out after 10-15 minutes OR turn LED off in Settings.


We are hard at work creating an awesome UI experience for you! While we are doing this, some references to the BlackBerry 10 UI, including screenshots, may not reflect what you see in the current software.

The documentation that is installed with the BlackBerry 10 Native SDK and available from the QNX Momentics IDE may not be the most recent version. For the latest versions go to

In previous releases, the most recent version of the BlackBerry Platform Services library (libbps) was bundled with the Native SDK. This version was newer than the version on the target OS. To ensure the correct BPS library version was used by applications at run-time, projects in the Native SDK 1.0 would:

  • Use BPS headers from the $QNX_TARGET/../target-override location for compilation,
  • Link the from the $QNX_TARGET/../target-override location to generate the application executable, and
  • Package the from the $QNX_TARGET/../target-override location in the BAR

As of the Native SDK 2.0.0 release, BPS no longer resides in the target-override location. The BlackBerry 10 OS and BlackBerry 10 Native SDK versions of this library are in sync. If you have applications targeting BlackBerry 10 that you no longer wish to support on PlayBook 1.0.x, you should remove the asset from bar-descriptor.xml and target the BlackBerry 10 version of the Native SDK. To verify, select the QNX page in the project properties dialog. Otherwise, packaging of the BAR file will fail because it will not be able to find the file to include in the BAR.



When you run the BlackBerry Native SDK installer on Windows 8, you cannot create a shortcut in the Start menu.
Workaround: You can use options in the installer to create shortcuts on the Desktop and the Quick Launch bar.


When updating the Momentics IDE using the Update Manager, you receive the following message: "Warning: You are installing software that contains unsigned content. The authenticity or validity of this software cannot be established. Do you want to continue the installation?" This message is expected. Accept to continue with the update.


Installing the Native SDK or simulator fails on a Mac when the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 are already installed.
Workaround: Uninstall the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files (version 7) and try again.


Installing the Native SDK into the same folder as a previous version is not supported. Uninstall the previous version before installing the new version.


The Native SDK Installer does not create an icon on the Dock for Mac OS X Mountain Lion, version 10.8 but the application is still properly installed.
Workaround: Run the bbnk command file from where the Native SDK is installed.


When you uninstall the Native SDK on Mac or Linux, you might get a warning that some files are not removed. This can be ignored and you can manually delete the remaining files.


On Linux systems, if the launch command contains "..", the Native SDK installer fails.


You might get a warning after uninstalling the Native SDK that some directories couldn't be removed. This can be ignored.


The installer provides recommendations on the space required to install the Native SDK. The number may be low and should 4GB. For more information, see the system requirements.


QNX Momentics Tool Suite

In the bar-descriptor file, the <action> element used in previous versions of the Native SDK has been changed to be used with the Invocation Framework. The <permission> element has been re-instated for use to control permissions for an application. If you need to add permissions to your <action> application, you must change it to use the <permission> element. For more information, see The application descriptor file DTD.


A previously signed BAR file is removed when a new BAR version is created using the BAR export.


Don't set Required Platform in the bar-descriptor to BlackBerry OS as the application will not deploy on a device. Use default Current SDK Target setting instead.


In a Windows environment, uninstalling the IDE does not remove any SDKs installed using the update manager.
Workaround: Manually remove the SDKs from the installation directory.


After building a project, the project may compile correctly but in some cases show header files as unresolved in the IDE editor. This is a result of unresolved symbols in the code.
Workaround: Manually set include paths.


If you try to use the IDE while an SDK installation is running in the background, after the update completes, the dialog prompting you to restart is disabled.
Workaround: Force the IDE to restart.


If you rename an existing project, the IDE does not prevent you from using special characters, spaces, or other invalid naming conventions.
Workaround: To prevent issues, you should avoid using special characters, spaces, and names that are shorter than 3 characters or longer than 25 characters.


If you update the IP address of a BlackBerry Target and click OK without clicking Apply first, the IDE gives an error that it can't connect to the target. However, the IDE does connect.
Workaround: After updating the IP address, click Apply before clicking OK.


In the Device Log view, if you filter logs by severity, and then change the severity filtering, the IDE does not display the updated logs.
Workaround: After choosing a minimum severity filter, to filter for a different severity, first reset the filter using the ALL option.


The locked SDKs in the Update Native SDK wizard may not accurately reflect the SDKs you are using. Use care when uninstalling SDKs to ensure that you don't uninstall an SDK that you want to continue using.


When setting a project-specific SDK, the settings will only take effect the second time you build your project.


The IDE update manager does not show an error message if it cannot connect to the update site. Instead it indicates that there are no updates available.


In a Linux environment, if you run the update manager and do not choose the options to switch to the newest SDK or to update the IDE, after the upgrade, the newest SDK is used by default.
Workaround: When you run the update manager, choose the option to update the IDE.


On a Mac, if you import a project with the Copy Project option selected, import starts after you click Finish but the wizard doesn't close. Attempting to close the wizard might result in an error.


Cancelling the BAR file signing process deletes a previously signed BAR file.
Workaround: Increment the app version before signing the BAR file for the second time.


Postmortem debug is not available for shared libraries. The error message, "'Asynchronous viewer input update' has encountered a problem. An internal error was occurred." is displayed.


Using GNU debugger, your debug session may break with an internal-error e.g., handle_inferior_event.


The GNU debugger crashes when breakpoints are set and you switch from the Breakpoints tab to the Variables tab.


The GNU debugger may not display the variable values in certain circumstances.


If you debug an application with Windows XP, you may receive an error stating there was an "InvocationTargetException".
Workaround: Install the Microsoft Visual C++ 2008 Redistributable Package (x86).


When debugging an OpenGL 2.0 project, the debugger may skip some breakpoints.


It is possible that the debugger may take 5-10 minutes to launch in certain circumstances.


If you try to launch an application in debug mode that is already running on the device, the QNX Momentics IDE may consume 100% of your CPU.
Workaround: Close the application on the device before launching it again.


An application with many assets may timeout when trying to deploy.
Workaround: Try deploying over USB instead of Wi-Fi or reduce the number of assets in your application.


A class containing a pure virtual function using variable arguments cannot be inherited virtually. The following error is generated: "generic thunk code fails for method 'virtual void Log::Logger::Debug(const char*, ...)' which uses '...'".


When you create a project with name that begins with a numeric value, you will see the following error: "Package ID is invalid". Project names cannot start with a numeric value and must start with a letter from a-z or A-Z.


During debug sessions, watchpoints are not supported.


If you launch Run Config and enable the Code Coverage tool, when you check Code Coverage Sessions, there is no coverage of shared and static libraries.


While debugging the "GoodCitizen" sample project using the "Step Into" function, the debugger doesn't step into the handle_events() function. The debugger jumps directly to the update() function and steps into that function.


When using Ubuntu 64-bit and registering with the RIM Signing Authority, you may receive the error "Error registering long term keys Error: null".
Workaround: Update the script at /bbndk-1.0/host/linux/x86/usr/bin/blackberry-keytool to include the line


Do not launch your application with the Application Profiler enabled in debug mode. This might cause the IDE to stop responding.


During initialization, the MSYS.dll provided with the Native SDK will try to map network shares. If they are not available, then it will take as long as the network access timeout for each such mapped share for MSYS to start. This can lead to build times being slower if MSYS based utilities are used.


To use the breakpoint command GNU Debugger (GDB) Command Action, you need to switch your debug framework to CDI. Click Run > Debug Configurations. Select your application, and on the Main tab, click Select Other at the bottom of the page. Select CDI Debugging Framework (Traditional) Launcher, and click OK.


The Native SDK ships static libraries for most of the libraries of the platform, however, we recommend using shared libraries where possible to reduce your application footprint and to take advantage of bug fixes in the platform.


If you use the Application Profiler with the Sampling method on a multicore target, all threads must be bound to CPU 0 because the Application Profiler only checks samples for CPU 0.

Back to Top

Looking for release notes for previous releases?

You can find the release notes for previous releases on the following pages:

Last Modified: February 6, 2013

Added previous release note content: June 6, 2013