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

10.2 beta Release Notes

Related release notes: BlackBerry Native Plug-in for Microsoft Visual Studio | BlackBerry 10 Device Simulator

This document contains the following sections:

Upgrading to 10.2 beta

Previously, the QNX Momentics IDE and a version of the Native SDK were installed together.

For this release, when you run the IDE, you download and install the BlackBerry 10 Native SDK. You can choose a version of the Native SDK that is compatible with the OS that is running on a BlackBerry 10 device that you have connected to the computer.

The IDE needs a unique location to run so you must:

  • Uninstall any previous versions and then install the new version, or
  • Install the new version to a different location.

To download and install the IDE and BlackBerry 10 Native SDK:

  1. Download the QNX Momentics IDE from the Downloads page.
  2. Complete the installation following the on-screen instructions.
  3. Launch the QNX Momentics IDE.
  4. Select an API level (10.2 beta in this case) or, if a device is connected to the computer, the IDE automatically detects and installs the appropriate SDK for your device. For more information about API levels, see API levels.

For more information, see Get started with 10.2 beta.

Additional device targets

If you're using the 10.2 beta release of the Native SDK but you still want to develop apps for devices running previous versions of the BlackBerry 10 OS, (for example, the BlackBerry 10 Dev Alpha B or C, or the BlackBerry Z10 or Q10 smartphone), you need to download a released version of the SDK by using the update site. To do this, in the QNX Momentics IDE, complete the following steps:

  1. In Windows or Linux, click Window > Preferences. In Mac OS, click Momentics > Preferences.
  2. Expand BlackBerry and click API level.
  3. Click Get More.
  4. Navigate to the desired SDK: Beta or Gold.
  5. Click Install on the BlackBerry Native SDK 10.2 beta.
  6. Allow the IDE to complete the installation, then restart the IDE.

The following devices are supported:

  • BlackBerry Z10 and Q10 smartphones
  • BlackBerry 10 Dev Alpha B and C devices

When you connect your BlackBerry10 Z10 or Q10 smartphone or a simulator to your computer, the IDE detects the runtime and recommends the appropriate version of the Native SDK to download.

For more information about developing apps that work on different versions of the BlackBerry 10 Native SDK, see Appropriate version of the BlackBerry Native SDK in the BlackBerry Support Community Forums.

Reverting to an earlier software version

If you've upgraded the software version on your device to a recent SDK OS build, and you want to revert to a software version that's been released by your wireless service provider, complete the following steps:

  1. Open BlackBerry Link.
  2. Connect your BlackBerry 10 device.
  3. At the bottom of the BlackBerry Link window, click the Computer tab.
  4. Select Settings.
  5. Under Reload Device Software, select Reload.
  6. Follow the on-screen instructions.

Note: Any backups created while running a developer build of BlackBerry 10 OS version 10.2 will not be able to be restored once the production BlackBerry 10 OS has been reloaded.

For more information, read this knowledge base article.

MD5 Checksum validation

MD5 checksum files are available for releases of the BlackBerry 10 Native SDK and the BlackBerry 10 Device Simulator. You can use these files, in conjunction with any checksum tool that supports MD5, to validate the installer files that you download. Use the following links to download MD5 checksum files for each installer:

Back to Top

Highlights - Native SDK 10.2 beta

Screen showing the QNX Momentics IDE Welcome page.
Screen showing the Flurry logo.
Screen showing the Wi-Fi connection between the BlackBerry 10 device to a compatible TV.

New QNX Momentics IDE

The new QNX Momentics IDE has a new and simplified interface. With improved automatic detection of the devices that you connect to the IDE, you can build and deploy your projects quicker. We've introduced API levels that can help you determine which APIs are available for each device OS version. You can also access developer forums, documentation, and sample apps from within the IDE. For more information, see Get started with 10.2 beta.

Analytics Service

Flurry, the industry-leading analytics service, is now available for BlackBerry 10 apps. You can get access to real-time data about how your apps are used. You can find out about your customers; who they are, where they live, and what devices they use. You can track anything relevant to your app, such as when a consumer makes a purchase, completes a level, or uses a key feature.

Miracast support

We've added Miracast card support to the BlackBerry 10 Native SDK. Miracast allows you to wirelessly display your app to compatible displays in up to 1080p video format and 5.1 surround sound format. A Miracast card can be invoked to discover and establish a connection to a nearby Miracast device. You can invoke the Miracast card in two modes: play on and show on. For more information, take a look at the Miracast card documentation.

Back to Top

New in this release

BlackBerry Platform Services Library

  • Asynchronous sound playback
    • You can call soundplayer_play_sound_async() to play a specified system sound and return immediately without waiting for the playback to be completed.
  • deviceinfo.h
    • Added the enumeration deviceinfo_hdmi_connector_t
    • Added the following functions:
      • deviceinfo_details_get_device_name()
      • deviceinfo_details_get_model_name()
      • deviceinfo_details_get_model_number()
      • deviceinfo_details_get_processor_name()
      • deviceinfo_details_get_processor_core_count()
      • deviceinfo_details_get_processor_core_name()
      • deviceinfo_details_get_processor_core_speed()
      • deviceinfo_details_get_hdmi_connector()
      • deviceinfo_details_identifying_details_get_pin_string()
      • deviceinfo_details_identifying_details_get_serial_number_string()
      • deviceinfo_details_identifying_details_get_imei()
      • deviceinfo_details_identifying_details_get_meid()
  • dialog.h
    • Added the following functions:
      • dialog_set_alert_checkbox_enabled()
      • dialog_set_alert_icon()
      • dialog_set_busy()
      • dialog_set_button_limit()
      • dialog_set_input_flags()
      • dialog_set_pid()
      • dialog_set_popuplist_allow_deselect()
      • dialog_set_popuplist_cancel_on_selection()
      • dialog_set_popuplist_show_basic_selection()
  • geomonitor.h
    • Added geomonitor.h to BPS. This file contains functions and enumerations that allow you to perform geofencing tasks using BPS.
  • mediacommon.h
    • Added the following media button types to media_button_t:
  • mediaplayer.h
    • Added the following functions:
      • mediaplayer_register_button()
      • mediaplayer_deregister_button()
    • Added the following media player events:
  • navigator.h
    • Added the following navigator event codes:
  • navigator_invoke.h
    • Added the enumeration navigator_invoke_list_cursor_direction_t
    • Added the following functions:
      • navigator_invoke_event_get_list_cursor_direction()
      • navigator_invoke_event_get_list_id()
      • navigator_invoke_event_get_list_item_selection()
      • navigator_invoke_invocation_set_list_id()
      • navigator_invoke_invocation_get_list_id()
      • navigator_invoke_select_list_item()
    • Added the type List ID to navigator_invoke_invocation_t
  • removablemedia.h
    • Added removablemedia.h to BPS. This file provides functions to determine changes to the state of removable media on a device.
  • screen.h
    • Added BPS_SCREEN_FAILURE screen event, which indicates a failure from libscreen has occurred.
    • Added the function screen_event_get_errno()
  • screencapture.h
    • Added screencapture.h to BPS. This file requires a permission that is not currently available.
  • sensor.h
    • Added the following functions:
      • sensor_event_get_heading()
      • sensor_event_is_heading_flipped()
      • sensor_event_is_holstered()
    • Added the following sensor event types:
    • Added the following sensor types to sensor_type_t:
  • soundplayer.h
    • Added the following enumerations:
      • bps_soundplayer_events
      • soundplayer_error_t
    • Added the following functions:
      • soundplayer_get_domain()
      • soundplayer_event_get_errno()
      • soundplayer_event_get_error()
      • soundplayer_event_get_id()
      • soundplayer_play_sound_async()
      • soundplayer_request_events()
      • soundplayer_stop_events()

Bluetooth Library

  • Bluetooth GATT server
    • Developers can now use their BlackBerry 10 device as a GATT server. The APIs are available in btgattsrv.h
  • Bluetooth low energy
    • Added new low energy advertisement functionality to btle.h
    • Added the constant BT_LE_TIME_INFINITY
    • Added the following callback prototypes:
      • bt_le_advertisement_change_cb
      • bt_le_advertisement_complete_cb
    • Added the following functions:
      • bt_le_start_advertisement()
      • bt_le_stop_advertisement()
  • btdevice.h
    • Added the following constants and functions for handling out-of-band data:
      • bt_ldev_get_oob_data()
      • bt_rdev_set_oob_data()
    • Added the function bt_rdev_get_remote_name()

Camera Library

  • Added new header files that provide video and audio encoding and H.264 codec parameters:
    • camera_encoder.h
    • camera_h264avc.h
  • camera_api.h
    • Added new data types and functions to retrieve and configure camera manual settings:
      • camera_frame_rgb565_t
      • camera_config_vf_histogram()
      • camera_get_ev_offset()
      • camera_get_manual_aperture()
      • camera_get_manual_iso()
      • camera_get_manual_shutter_speed()
      • camera_get_manual_white_balance()
      • camera_get_supported_ev_offsets()
      • camera_get_supported_manual_iso_values()
      • camera_get_supported_manual_shutter_speeds()
      • camera_get_supported_manual_white_balance_values()
      • camera_get_supported_photo_framerates()
      • camera_get_supported_videoencoder_parameter_values()
      • camera_get_videoencoder_parameter()
      • camera_is_videocodec_supported()
      • camera_is_videocodec_supported()
      • camera_set_ev_offset()
      • camera_set_manual_aperture()
      • camera_set_manual_iso()
      • camera_set_manual_shutter_speed()
      • camera_set_manual_white_balance()
      • camera_set_videoencoder_parameter()
    • camera_meta.h
      • Added new data types and functions to retrieve metadata regarding images or videos:
        • camera_meta_histogram_t
        • camera_meta_get_ISO()
        • camera_meta_get_rgby_histogram_values()
        • camera_meta_get_shutter_speed()
        • camera_meta_get_whitebalance()

Geofencing Library

  • You can monitor user defined areas by using the Geofencing Library.

Identity Service

  • The Identity Service supports multiple identity providers, including BlackBerry ID, and can be used to allow your users to access off-device services and content from within your app.

Image Library

  • Added the function img_reset()

Near Field Communication Library

  • nfc.h
    • Added the following functions:
      • nfc_get_tag_manufacturer_param()
      • nfc_is_static_handover()
  • nfc_ndef.h
    • Added the following API functions:
      • nfc_validate_sp()
      • nfc_get_handover_wifi_direct_device_name()
      • nfc_get_handover_wifi_direct_device_type()
      • nfc_get_handover_wifi_direct_device_mac_address()
  • nfc_types.h
    • Added the following events:
    • Added the following target property types:
      • TAG_PROP_ISO_18092_TYPE
    • Added the handover transport type WIFI_DIRECT_HANDOVER
    • Added the NFC tag type TAG_TYPE_ISO_18092

PNG Library

  • Added support for libPNG version 1.6.x to the existing support of 1.4.x.

Push Service Library

  • The Push Service Library lets you provide instant information to your users by sending it directly and automatically to their devices, and lets your apps receive the information while running in the background. For details, see the Push Service Dev Guide.

Scoreloop SDK

  • A default UI will be available for leaderboards, awards, achievements, and profile editing, pending the next NDK release.
  • Nationality leaderboards and support for a custom-country leaderboard where the country code can be explicitly set are deprecated. Only location-based leaderboards which are determined by the player's IP address location are supported.
  • The GNU C++ Standard Library (libstdc++) is now supported along with Dinkum C++ runtime.

Sensor Library

  • Added support to retrieve pressure sensor history using the function sensor_history_pressure().
  • Added the following data types:
    • sensor_history_pressure_data_t
    • sensor_history_pressure_element_t
  • Added the function sensor_history_pressure()
Back to Top

Changes in this release

BlackBerry Platform Services Library

  • dialog.h
    • Deprecated dialog_set_prompt_input_flags()
  • mediacommon.h
    • Deprecated MEDIA_ACTION_LAUNCH from media_action_t
    • Deprecated MEDIA_BUTTON_LENGTH_LONG from media_button_length_t
  • mediaplayer.h
    • Deprecated the media player event MEDIAPLAYER_BUTTON_RESULT. Use MEDIAPLAYER_REGISTER_BUTTON_RESULT instead.
  • navigator.h
    • Deprecated navigator_invoke() Use the Invocation Framework APIs.
  • sensor.h
    • Deprecated sensor_set_calibration()

Near Field Communication Library

  • nfc_types.h
    • Deprecated the following definitions:
      • #define SERVER NFC_LLCP_SERVER
      • #define CLIENT NFC_LLCP_CLIENT
    • Deprecated the following target property types from target_property_type_t:

BAR application descriptor file

  • Permissions for the BAR application descriptor file have changed.
    • The read_geolocation permission (GPS Location) has been deprecated. You can use the access_location_services permission instead.
    • The access_location_services permission (Location) has been expanded to cover geocoding, geofencing, and other methods to access a user's location.
Back to Top

Fixed in this release

BBM Social Platform


In the BlackBerry 10 Device Simulator, if you connected to BlackBerry ID through BlackBerry World, and then connected to BlackBerry Messenger, the simulator stayed locked in a connecting state.



There was a potential risk of deadlock if connect, disconnect, read, or write operations were performed within a Bluetooth GATT (btgatt.h) notification callback (bt_gatt_notifications_cb). We suggested that you perform these operations in another thread.



The Native SDK Installer did not create an icon on the Dock for Mac OS X Mountain Lion, version 10.8 but the application was still properly installed.

Back to Top

Known limitations


  • If an app plays a media stream that's encrypted, the app won't allow video playback if an HDMI display is connected, due to security restrictions. This limitation will be resolved in a subsequent release.
  • 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.

BBM Social Platform

  • Apps installed in the Work perimeter cannot access the BBM Social Platform. To connect to BBM, your app must be installed in the Personal perimeter.


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


  • The Native SDK does not support Shared Install.
  • When you execute to launch the Native SDK on Ubuntu 11.04 32-bit, you will receive an error:
    "QNX Compiler Configuration Error". Run the ./qde app instead.
  • By default, the Native SDK installer creates the installation folder on Windows systems at the root of the C drive in C:\bbndk. During installation, you need to provide the administrative username and password or, if you are the administrator, accept that the SDK is installing on the C drive.
  • 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.
  • On Mac computers, you may encounter an issue with incorrect permissions on the Native SDK installer executable. To launch the installation program, you will first need to manually change the permissions for the installer.
  • 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.


  • 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 when 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, which is located at
    • 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 IDE

  • It is possible that the debugger may take 5-10 minutes to launch in certain circumstances.
  • 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

BlackBerry Platform Services


Using the Screen capture API, the screencapture_grab() function fails with the error message:
error code 9 – CAMERA_EBADF
error message: Failed to open screencapture control PPS object

BBM Social Platform


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

261200, 218238

When the Connect to BBM permission (Settings > Security and Privacy > Application Permissions) is toggled from enabled to disabled or from disabled to enabled, the registration and permission states are not updated.
Workaround: Restart the app if permissions have been modified.



When you try to pair using Bluetooth, there is a potential risk for out-of-band (OOB) pairing to fail.
Workaround: Try OOB pairing again.


When you try to create a Bluetooth connection, there is a potential risk for a low energy (LE) connection to fail.
Workaround: Try connecting again.



The complete set of offline help documentation is not available in the 10.2 beta version of the QNX Momentics IDE. It includes only Using the QNX Momentics IDE. You can access the latest version of the online documentation on the BlackBerry Native SDK Documentation site.

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.

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.



In the QNX Momentics IDE, installing more than one API Level at the same time will result in an error.
Workaround: Only install one API Level at a time.


When using the Darwin (Apple) command line, the DYLD_LIBRARY_PATH environment variable is not set from the environment script. This causes some compiles or commands to fail. If you install additional targets, you need to modify the target scripts in a similar manner.
Workaround: The environment script file (e.g in the installation directory needs to be updated to set the DYLD_LIBRARY_PATH environmental variable. After QNX_TARGET is set, add the following line and change LD_LIBRARY_PATH to DYLD_LIBRARY_PATH on the final export line.



When using the DOS command line, Windows environment variables are not set with forward slashes "/". This causes some compiles to fail. If you install additional targets, you need to modify the target scripts in a similar manner.
Workaround: Update the environment batch file (e.g bbndk-env_10_2_0_282.bat) in the installation directory to use forward slashes for the BASE_DIR, QNX_HOST, QNX_TARGET, and MAKEFLAGS environment variables. Here is an example using C:/bbndk as the installation directory:
set BASE_DIR=c:/bbndk
set QNX_HOST=%BASE_DIR%/host_10_2_0_1/win32/x86
set QNX_TARGET=%BASE_DIR%/target_10_2_0_282/qnx6
set MAKEFLAGS=-I%QNX_TARGET%/usr/include


When you perform a software update, accept the security warning about installing unsigned software, and continue the installation.


When using the DOS or Linux command line, environment variables are not set to use the packaged JRE from the environment batch file. This can sometimes cause a command that uses Java to fail.
Workaround for Windows: Ensure that the following lines are inserted or appear in the environment batch file (e.g bbndk-env_10_2_0_282.bat) that ensures that the ‘host_10_2_0_x’ directory points to the installed version:
set DOS_BASE_DIR=%~dp0
for /f "delims=" %%x in ('dir /od /b %DOS_BASE_DIR%\features\*') do set LATEST_JRE=%%x
set PATH=%DOS_BASE_DIR%\host_10_2_0_1\win32\x86\usr\bin;%QNX_CONFIGURATION%\bin;

Workaround for Linux: Ensure that the following lines are inserted or appear in the environment batch file (e.g
LATEST_LINUX_JRE=`ls -lrt $BASE_DIR/features | awk '/ {f=$NF};END{print f}'`


Install the 10.2 beta version of the QNX Momentics IDE in a different folder (not the default folder) than previous installations.


When you install the QNX Momentics IDE, do not a select a folder name that contains spaces, or your sources won't compile properly.


When installing on Windows XP, specify a different installation location, instead of using the default location. The folder name must not contain spaces.


If you cancel the SDK installation and do not have an SDK, you cannot create a BlackBerry project.
Workaround: Install an SDK first before you create a project.


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.


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


When using the Linux command line, the LD_LIBRARY_PATH environment variable is not set from the environment script. This causes some compiles or commands to fail. If you install additional targets, you need to modify the target scripts in a similar manner.
Workaround: The environment script file (e.g in the installation directory needs to be updated to set the LD_LIBRARY_PATH environment variable. After QNX_TARGET is set, add the following line:


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 be 4 GB. For more information, see the system requirements.

QNX Momentics IDE

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 reinstated 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.


On Mac OSX, launching the BlackBerry 10 Simulator from within the IDE may cause Momentics to crash.
Workaround: Start the simulator by running the simulator .vmx file and then connecting it to the IDE.


Linux command line users need to use the system's java runtime or add an executable bit on features/*/jre/bin and add this to their PATH.


On Mac OSX 10.8, if applications are downloaded from 'Anywhere', users need to change the systems settings in Security and Privacy to allow the QNX Momentics IDE to run.


To display the source code navigator, on the Window menu, click Show Advanced Toolbars.


If you already have a simulator installed, and the device manager in the QNX Momentics IDE does not recognize it, you can manually pair it in the IDE.
Workaround: To pair the simulator, on the menu, click File > New > Other. In the Select a Wizard dialog box, click BlackBerry > BlackBerry Target, and then follow the instructions in the wizard.


When you switch between a device and a simulator, click Run instead of Build the first time after the switch.


On Mac OS, running the script after running the mkbuild script produces an error.
Workaround: Manually fix the mkbuild script to point to the correct qde binary.


If your application requires permissions and you launch it from the QNX Momentics IDE, you must promptly accept the permissions on the device or the launch might time out.


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.


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.


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.


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.


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 has occurred." is displayed.


On Windows, using blackberry-deploy from the command line results in the error “Cannot connect: Permission denied: connect. Please check IP address settings for the target. Try to ping the target.�
Workaround: Before you run blackberry-deploy from the command line, execute bbndk-env.bat, which sets the environment variables properly.


Using GNU debugger, your debug session may break with an internal-error (for example, handle_inferior_event).


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.


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.


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


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


When you create a project with a 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.


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 target, all threads must be bound to CPU 0 because the Application Profiler only checks samples for CPU 0.


If you uninstall or abort the installation of the BlackBerry 10 simulator from within the IDE, it will no longer appear in the Device Manager list or be available to download from within the IDE.
Workaround: Download the BlackBerry 10 simulator from the downloads page.


You cannot build a project from the command line on a Mac.

Invocation framework


When reading a URI tag that contains ‘pin’, the BBM application doesn't handle the content of the tag, but the Smart Tags application does and invokes the URI.

338399 337813

An unbound invocation query may cause some invocation targets to appear twice in the menu. (See also 345183)


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



On Mac OS, the simulator controller cannot be launched from the simulator installation location.
Workaround: Launch the simulator controller directly from*/controllers/

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: September 5, 2013

  1. 1. Download the tools

    Before you start developing, you'll need to visit the Downloads tab. Here you'll find downloads for the BlackBerry 10 Native SDK, BlackBerry 10 Device Simulator, and some other useful tools.

  2. 2. Try the sample apps

    Now featuring a filter control, the Sample apps tab allows you to search for samples by name or by feature.

    Select either the Core or Cascades radio buttons to display the samples relevant to you.

  3. 3. Educate yourself

    The Documentation tab contains tons of examples, tutorials, and best practices to guide you along the path towards building an awesome app.

    You can access all the documentation that you need in the left-hand navigation.

  4. 4. Start developing

    The Reference tab is where you'll find essential details about how to use our APIs.

    You can use the left-hand navigation to choose how you would like to browse the reference: by module, by topic, or alphabetically. If you have an idea of what you are looking for, start typing it in the Filter box.