Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

Posts: 1,068
Registered: ‎11-24-2011
My Device: PlayBook
My Carrier: x

Re: Large projects

>So, in case of Qt libraries - once you deploy them once, there is no need to change them. Hence what you can do in your case - (and say you have a clean device or you had to manually wipe the app) selec "Install application from a BAR file" on your first run, and then set it to "Only upload binary into existing installation".


This exactly what I am doing and Qt libraries are not uploaded every time I hit 'debug' that greatly improves speed of starting my app.

Posts: 36
Registered: ‎10-26-2011
My Device: RIM Developer
My Carrier: Rogers

Re: Large projects

Okay, I have a solution for your issue.


It's a few steps, so bear with me.


1. Open the TargetNavigator and locate a your app's folder in the Sandboxes.

2. Drag and drop your Qt libraries to Sandbox/your-app-name/data. Or, possibly, create a subfolder in /data for your libraries for the sake of a clean file structure.

3. Go your bar-descriptor.xml and remove the lines that add your Qt libraries as assets.

4. Modify this line


<env var="LD_LIBRARY_PATH"value="app/native/lib"/>


So it points to ./data or a subfolder that contains your Qt libraries.


Note that as you deploy your application, contents of ./data are unchanged as this folder generally is to contain read-write resources. So, the these steps only need to be performed in case you uninstalled your app off the device.


And since you dont package Qt libraries as assets, you dont waste time uploading them every time. You can now pick a desired Upload mechanics, just keep in mind that the second option on the list (clean install) will force you to re-trace the steps.


And in case you are wondering how to get proper resources to ./data in a real-life situation - it is up to you to copy the desired filesfrom /app/native to /data on the first init sequence, and handle potential merging issues. Such desicions are always specific to a context of the app.


Hope this helps and, as usual, let me know if you have further issues with this.