The BlackBerry 10 Native SDK is comprised of two parts that help us bring you updates faster and more efficiently. The Native SDK provides all the libraries that you need to build your apps while the Momentics IDE for BlackBerry provides the development and testing environment that brings it all together. To make the download fast and easy, the BlackBerry 10 Native SDK is installed separately. When you start the Momentics IDE, you can download and install the BlackBerry 10 Native SDK from within the IDE. You can also update the tools from within the IDE.
Momentics IDE 2.0 is our first update to the BlackBerry 10 Native SDK for the 10.2 Gold release. The Momentics IDE and the BlackBerry 10 Native SDK are now available as separate releases, so their version numbers are distinct. You’ll notice that the downloads and release notes have been updated to reflect this.
MD5 checksum validation
An MD5 checksum file is available for releases of the Momentics IDE. You can use this file, in conjunction with any checksum tool that supports MD5, to validate the installer files that you download. Use the following link to download the MD5 checksum file for the IDE:
Momentics IDE for BlackBerry
Deploying large .bar files
In case you missed it in the 10.2 release, the Momentics IDE for BlackBerry has a new and simplified interface. We've introduced API levels which can help you determine what APIs are available on a device OS version. You can also get access to developer forums, documentation, and sample apps straight from the IDE. For more information on the new IDE, visit Getting Started.
We've made some improvements to speed up the initial deployment of large bar files. The time it takes from editing code to testing your app (on a device or simulator) is much shorter.
You can create a headless app quickly and easily using the new headless app template. A headless application runs in the background on the BlackBerry 10 OS. The IDE now has support for debugging headless apps. You can create multiple entry points and service points in your bar-descriptor to debug invocation of your headless app. For more information on headless apps, take a look at the documentation.
Momentics IDE for BlackBerry
We've introduced the new DevelopmentSupport API. This class emits a signal that sends live QML updates from the Momentics IDE for BlackBerry to your device. These live asset updates are sent to your running application where you can instantly view the results. This streamlined update feature makes working with a QML based UI faster and more intuitive. For more information on the APIs, take a look at the DevelopmentSupport API reference.
We now support headless apps in BlackBerry 10. A headless app runs in the background on the BlackBerry 10 OS. Unlike other applications with a UI and an associated active frame, a headless application is not under the direct control of a user. You can create a headless app quickly and easily using the new Cascades headless app template. The IDE now has support for debugging headless apps. You can create multiple entry points and service points in your bar-descriptor to debug invocation of your headless app. For more information on headless apps, take a look at the documentation.
We’ve introduced accessibility validation in the QML Editor. By default, you can see warning markers for code that is missing accessibility properties. Just click a component to add an appropriate property to make your code accessible. Or check out the new QML Accessibility Problems view to see an accessibility report for all of your projects in one place. For more information on creating apps that are more accessible, see Accessibility tools.
New in this release
- Headless apps
- Improved deployment times for large projects
- More Profiling options
We've improved semantic validation and error checking. You now can specify API-baseline per project. There is a new whitelist feature and code completion displays more relevant proposals for you. Code completion is also faster, lighter, and has better matching. We have improved capabilities and options for auto-editing and formatting. We now have options to configure errors and warning levels. You can now preview your image assets and color definitions. There is also now a link to our online documentation from the in-line hover-help
C++ Support and Templates
The QML editor now recognizes and provides code completion support for custom components written in C++, including properties and functions. We've also updated the project and file templates to correspond to the updated SDK. You will also notice improved code completion, better hyperlinking to sources, and less 'unrecognized' markers.
We've enhanced the stability and performance of QML Preview, and we've added support for Linux-based operating systems. Also, the rendering capabilities of QML Preview have been extended to provide rendering of more custom controls. With the introduction of API levels, QML Preview now has API level-specific preview per project, allowing you to see your UI depending on the API level of your customer.
The 10.2 beta SDK now supports QML preview on Linux operating systems.
Fixed in this release
In this section
Cascades UI framework
When you created a new VPN profile, clicking on the 'Next' button while in the "Group Password" field did not go to the next editable field.JI: 515057
When you created a headless app from the Cascades template, you were given the option to choose an API level that was lower than 10.2 Gold. Headless apps will not build with an API level that is lower than 10.2 Gold.JI: 492744
Chinese characters were not being displayed correctly while the device was in Landscape mode.JI: 477099
The HighlightAppearance class header file was missing, and it couldn't be directly included.JI: 462506
When there were six or more tabs open in the browser, the browser could terminate unexpectedly.JI: 461792
Sometimes small gaps were displayed between emails in the BlackBerry Hub.JI: 443209
In the Calculator app, the rightmost digit was hidden in the calculator screen.JI: 429889
In the universal search, some characters in right-to-left languages were overlapped by an X.JI: 381747
When you were using a ScrollView, if the scrollMode was set to Both or Horizontal, the UI element extended to past the screen and was unusable.JI: 381722
If you had a group chat on BBM, BlackBerry HUB might still have displayed the chat after you had deleted it, and the title field might have been incorrect.JI: 381716
Sometimes when you were using a WebView control, blank content displayed temporarily.JI: 381633
In the StarshipSettings sample app, if you dragged a slider handle from one end of the slider to the other and released it, the tooltip for the slider did not disappear as expected.JI: 381629
If you swiped at the exact distance of the scroll/peek threshold, a peek was detected instead of a scroll.JI: 381527
In BBM, some special characters were displayed as squares.JI: 381474
In some Cascades apps, the text flickered after typing in a PIN.JI: 381448
In the Phone app, if you set a new Call Forwarding number, in the drop down list, the phone number might have had a check mark beside it.JI: 381341
Asset resolution when using QRC-embedded QML files or resources may not have worked as expected.JI: 268222
When the local storage file system on your device was filled to maximum capacity, the device may have became partially unresponsive.JI: 151155
After using the spellchecker, two finger text selection sometimes did not work properly.JI: 151039
If you typed some text in a TextField or TextArea and simultaneously used two fingers to select text in another TextField or TextArea, the focus may have remained on the original TextField or TextArea, which produced a blinking text cursor in both.JI: 150752
If you invoked and then dismissed a tooltip using two fingers, the ActionBar became unresponsive.JI: 150554
The logs for a Cascades app may have contained irrelevant entries.JI: 150253
When you set a custom title for the Back button on the action bar, the tooltip used to continue to display the default "Back" instead.JI: 149985
When an InvokeQuery object was initialized, it may have been locked and calling updateQuery() would not update the query.JI: 149919
You might have had trouble highlighting text or copying and pasting text on your device.JI: 149901
When using a TextField, you couldn't invoke the NumericPassword keyboard.JI: 149573
The ImageSource property of an ImageView did not respond to changes in bound properties.JI: 149352
Opening text documents that were attached to emails was using more memory than intended.JI: 149252
If there were a large number of misspelled words in a text control, the spellchecker sometimes stopped highlighting the misspelled words.JI: 146966
A TextField control did not have a mechanism for setting whether or not the TextField was editable.JI: 146426
If you held down your finger on a whitespace, sometimes the whitespace was selected.JI: 145056
Default-sized TextField controls in Container controls with LeftToRight layouts could push some Label controls out of view by exceeding the bounds of the Container.
When using the Apple Darwin command line tool, the
DYLD_LIBRARY_PATH environment variable was not set from the environment script. This caused some compiles to fail. If you installed additional targets, you needed to modify the target scripts in a similar manner.
Linux command line users needed to use the system's java runtime or add an executable bit on features/com.qnx.tools.jre.linux_*/jre/bin and add this to their PATH.JI: 394155
When using the DOS and Linux command line, environment variables were not set to use the packaged JRE from the environment batch file. This sometimes caused any command that uses Java to fail.
The complete set of offline help documentation was not available in the 10.2 beta version of the Momentics IDE. It included only Using the Momentics IDE. You could access the latest version of the online documentation on the BlackBerry Native SDK Documentation site.
In the Momentics IDE, installing more than one API Level at the same time would result in an error.JI: 403373
When using the Darwin (Apple) command line, the DYLD_LIBRARY_PATH environment variable was not set from the environment script. This caused some compiles or commands to fail. If you installed additional targets, you needed to modify the target scripts in a similar manner.JI: 403370
When using the DOS command line, Windows environment variables were not set with forward slashes "/". This caused some compiles to fail. If you installed additional targets, you needed to modify the target scripts in a similar manner.JI: 394155
When using the DOS or Linux command line, environment variables were not set to use the packaged JRE from the environment batch file. This could sometimes cause a command that uses Java to fail.JI: 402268
Installing the Native SDK into the same folder as a previous version was not supported (see also JI: 402307, and JI: 402280).JI: 402297
When you installed the Momentics IDE, you are now correctly unable to select a folder name that contains spaces, which would prevent your sources from compiling properly.JI: 393988
If you canceled the SDK installation and did not have an SDK, you could not create a BlackBerry project. It is now clearer that the required SDK is missing and how to resolve the issue from the IDE.JI: 402249
When you uninstalled the Native SDK on Mac or Linux, you might have received a warning that some files were not removed. This could be ignored and you could manually delete the remaining files. Mac now uses a drag-and-drop installation.
If you had an old workspace with projects that refered to an API Level that was no longer installed and there were no other API Levels installed, you would get a ‘string index out of range’ error when you tried to build your project.JI: 470689
If you had an OS version on your device that was newer than 10.2.0.1157 and, while running the debugger against your installed OS build, the debugger did not perform as expected, then you may have had a mismatch with your runtime. You needed to make sure the matching runtime was used instead of the API level.JI: 469900
On Linux, you could not open the controller for the BlackBerry 10 Device Simulator through the Simulators tab in the Device Manager screen, even when the matching simulator for the Native SDK was installed, paired, and launched properly.JI: 462100
Adding or removing source or header files did not automatically update the project's config.pri file.JI: 460850
In the Momentics IDE, installing more than one API Level at the same time would result in an error.JI: 418611
If you uninstalled or aborted the installation of the BlackBerry 10 simulator from within the IDE, it would no longer appear in the Device Manager list or be available to download from within the IDE.JI: 394341
On Mac OSX, launching the BlackBerry 10 Simulator from within the IDE may have caused Momentics to crash.JI: 394236
Linux command line users needed to use the system's Java runtime or add an executable bit on features/com.qnx.tools.jre.linux_*/jre/bin and add this to their PATH.JI: 394138
To display the source code navigator, on the Window menu, you needed to click Show Advanced Toolbars.JI: 394062
If you already had a simulator installed, and the device manager in the Momentics IDE did not recognize it, you needed to manually pair it in the IDE.JI: 393914
On Mac OS, running the bbndk-env.sh script after running the mkbuild script produced an error.JI: 393786
When you set a project-specific SDK, the settings only took effect the second time you built your project.JI: 393745
If you created a project that required permission confirmation from the user (such as a geolocation permission), and then built and launched the app on the BlackBerry 10 Device Simulator, you received an "Unable to determine returned PID from launch" error if you didn't accept and dismiss the permissions dialog box on the simulator in a reasonable amount of time.
In the QML editor, if you cloned the editor, made an edit, closed the clone, and then edited the original, pressing the Enter key after any opening bracket did nothing.JI: 416870
If your project contained QML assets stored outside the assets folder, the Momentics IDE may not have been able to correctly discover them, which generated error and warning markers within the editor.JI: 394256
QML Preview may have failed to render some unicode characters when using older API baselines.JI: 394189
When you were profiling QML, the move forward and backward in the call stack didn't allow you to traverse the call stack.JI: 394164
Sometimes when you imported a project, then immediately ran it, the build failed citing a missing config.pri file.JI: 394152
When you dragged and dropped a custom component into QML, the custom component was always placed as the last control, even if you dropped the component above other controls.JI: 394148
Depending on the complexity of the QML and the performance of your computer, QML Preview may have generated a timeout message.JI: 394139
Sometimes custom component property references were not correctly displayed in QML Preview.JI: 394081
When using QML Preview on a Mac for projects using pre-10.2 API baseline, the qmlpreview_jni process may have continued running even after the file was closed.
When you install the Momentics IDE, only the Getting Started and Momentics IDE for BlackBerry help is available. The complete offline documentation is only available after you install the Native SDK. If you don’t install the Native SDK, some links are unavailable and show up with a “Topic not found” error. This behavior is expected and occurs in the following areas:
- Links in the Home, Getting Started, Core, and BlackBerry 10 OS tabs
- Links to the Copyright information in the Getting Started and Momentics IDE for BlackBerry help
- The Native SDK does not support Shared Install.
- When you execute bbndk.sh 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 libc.so.6 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.
- 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.
Using older drivers with QML preview
Any drivers that are more than 12 months old are unsupported. Using unsupported drivers can lead to issues with rendering, such as, complete disabling of the QML preview feature. The user will also be notified about this situation by a dialog box within the QNX Momentics IDE for BlackBerry.
Workaround: Update to the latest drivers. This issue might occur even with newer graphics cards and the latest drivers. In this case, you should report this issue to BlackBerry developer support with as much detail as possible. You can report to the support community forums. For more information, check out the QML preview troubleshooting documentation.
Cascades UI framework
Unable to copy and paste in the Contact application.JI: 490079
The Weather app crashes when you try to add a city while the ScreenReader is turned on.JI: 469817
Selecting a profile photo in the Games app displays a toast dialog stating "Target was not found" message.JI: 436711
In the ValueA11ySpecialization API, the maxValueText, minValueText and valueText is not NULL by default as documented. Instead these variables all contain empty strings by default.JI: 435826
If you use the shortcut keys to jump ahead to message that aren't visible, the message won't display.JI: 388259
When you have a WebView and call storage()->clear(), the WebView storage will not be cleared. Workaround: Use a render fence to set up WebView storage after the WebView has been rendered.JI: 381537
You might not be able to share a link for a mapped network drive from an email.JI: 381511
When the keyboard is displayed in an app (for example, if a user taps a text field), the transition of the page content is not in sync with the appearance transition of the keyboard.JI: 381402
StandardListItem render text from right-to-left languages left justified.JI: 377331
If you do not have a device password set and you lock your device and then swipe down from the top to put the device in bedside mode, when you try to wake up the device by swiping up, the password dialog is not presented or the UI does not respond to the swipe up. Workaround: Press the Power/Lock button on the top of your device and hold it for a few seconds, then click Cancel.JI: 150791
In a ListView, calling itemRemoved() and itemAdded() with the same index path may cause the app to become unresponsive.JI: 150617
If BlackBerry Balance is locked, copying from personal to work within a share email card results in a error saying you're not allowed to copy work content into a personal email.JI: 150377
When creating CustomControl objects, the Container that is set as the root is being wrapped by a phantom Control.JI: 150190
When your device language and region are set to Greek and Greece respectively, if you press and hold the V key on your keyboard to enter an accented Greek character, then press the Shift key to capitalize the accented character, it remains lower case.JI: 150165
When you use a validator in a password TextField and the validation fails, the errorMessage icon and text are not displayed.JI: 149804
When you use a DropDown control and you try to remove the option at index 0 while the option at index 1 is selected, the app may terminate unexpectedly.JI: 149613
Calling bb::cascades::QmlDocument::create() in a non-Cascades app may cause the app to terminate unexpectedly.JI: 149509
The setKey() function in the Shortcut class can erroneously accept invalid strings (for example, strings that don't correspond to an acceptable shortcut).JI: 148647
If an implicit or explicit animation occurs immediately after an orientation change of the device, the animation does not play but instead jumps to its final position. For example, this issue may occur if animations are started from the rotationCompleted() or orientationChanged() signals.JI: 148249
When a ListView control's flick mode is set to a non-default value and a slot function is connected to the flickModeChanged() signal, calling the resetFlickMode() function doesn't set the flick mode back to the default value and no signal is emitted.
If you have Java 6 installed and you upgrade your Mac OSX to 10.9 Mavericks, the upgrade uninstalls Java 6. When you launch Momentics IDE, you are prompted to install Java 6. However, if you have Java 7 installed, you get an error message that there is a missing CreateJavaVM symbol and Momentics fails to launch.
Workaround: Uninstall Java 7 and relaunch Momentics IDE. You can reinstall Java 7 after the Java 6 install has completed.
On Linux systems, if the launch command contains "..", the Native SDK installer fails.JI: 402236
You might get a warning after uninstalling the Native SDK that some directories couldn't be removed. This can be ignored.JI: 394200
When you perform a software update, you must accept the security warning about installing unsigned software, and continue the installation.
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.JI: -
During debug sessions, watchpoints are not supported.JI: 526021
If you get the message 'error in opening zip file' while updating or downloading the Momentics IDE or API Levels, you may need to clear your download cache.
Workaround: Remove <full_path_to_IDE_install>/p2/org.eclipse.equinox.p2.core/cache/*
When you create a headless app from the Cascades template, two projects are created.
Workaround: Select the project with the name that you provided and not the service project.
The DevelopmentSupport API does not work on a simulator.JI: 508506
If you set up a new simulator in the Device Manager, then click to pair a simulator downloaded from another source, in the Select .vmx file browser, you can't open the Momentics .app folder.
Workaround: With the folder browser open, press CMD+SHIFT+G and enter the path to the simulator folder.
On Mac OSX, While performing postmortem debugging in the IDE, the error message <symbol is not available> is shown in the debug trace.
Workaround: Before you can debug your app, you need to define the version of the runtime matching the device from where the core file was generated, manually install the runtime using the sdkinstall command line utility, and then add the shared libraries.
- From the command line in the IDE install directory, for Windows run sdkinstall.bat --install --runtime <runtime_version> or, for Mac or Linux run ./sdkinstall --install --runtime <runtime_version>. The runtime version is in the format of XX_X_X_XXXX, for example 10.2.0.1765.
- Restart the IDE so that the IDE discovers the newly installed runtime.
- Open the launch configuration for your app and click the Debugger tab.
- Click the Shared Libraries tab.
- Add the directories that you want. For example, add '<full_path_to_IDE_install>\runtime_XX_X_X_XXXX\qnx6\armle-v7\lib', '<full_path_to_IDE_install>\runtime_XX_X_X_XXXX\qnx6\armle-v7\usr\lib', and '<full_path_to_IDE_install>\runtime_XX_X_X_XXXX\qnx6\armle-v7\usr\lib\qt4\lib'.
- Click Debug.
In the Momentics IDE, if you open a new workbench window using Window > New Window and then close the original window, the new main toolbar is missing even if you restart the Momentics IDE.
Workaround: In your workspace, remove the file .metadata/.plugins/org.eclipse.e4.workbench/workbench.xml.
If your device is asleep and you attempt to attach using the BlackBerry Attach to running Application launch configuration, once the process is attached and you click Resume, the Resume button is disabled.
Workaround: Make sure your device is awake before attaching.
The application binary interfaces for the Dinkum C++ and GNU C++ libraries are incompatible. If you link an app against both libraries, you'll get a segmentation fault.JI: 480112
In the 10.1 version of the IDE, if you clear the check box Update IDE while installing the 10.2 SDK, you must update the IDE separately by clicking Help > Check for Updates. For compatibility, the 10.2 version of the SDK requires the 10.2 version of the IDE.JI: 467325
When using the Memory Analysis Tool to analyze Cascades projects, the Memory Problems view takes longer than expected to populate the errors.JI: 461951
If you have Qt libraries installed in your Windows-based computer, sometimes QML preview may fail.
Workaround: Uninstall any extra Qt libraries found in your system32 and syswow64 folders.
QML preview doesn't render text initially when a ForeignWindowControl is in the UI.JI: 428692
The inputAllowed property of MultiSelectHandler is incorrectly marked as an error, even though it valid. The error can be safely ignored.JI: 394085
On Windows XP, if you install the Native SDK as an administrator using the default installation settings, and then log on as a non-administrator and start the IDE, you receive an error indicating that you cannot access the Native SDK.JI: 394005
When you switch between a device and a simulator, you must click Run instead of Build the first time after the switch.JI: 393915
The lupdate tool does not correctly handle files with names containing more than one dot. Workaround: Do not use more than one dot when naming project files.JI: 393904
If your application requires permissions and you launch it from the Momentics IDE, you must promptly accept the permissions on the device or the launch might time out.JI: 393865
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.JI: 393847
When you debug C programs, global variables do not appear in the Variables view.
Workaround: Type an expression in the Expressions view for each global variable that you want to inspect.
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.JI: 393795
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.
On Windows 7 64 bit, QML Preview may fail to render ListView components when zooming.JI: 393773
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).
WebView controls don't render in QML Preview.JI: 393766
If you try to launch an application in debug mode that is already running on the device, the Momentics IDE may consume 100% of your CPU.
Workaround: Close the application on the device before launching it again.
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.JI: 393738
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.JI: 393718
Do not launch your application with the Application Profiler enabled in debug mode. This might cause the IDE to stop responding.JI: 393694
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.JI: 393602
Breakpoints that you set from .gdbinit are not visible in the UI of the IDE.JI: 382910
When debugging an OpenGL 2.0 project, the debugger may skip some breakpoints.JI: 382833
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 '...'".JI: 382690
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.JI: 382684
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.
Last modified: April 10, 2014