感谢支持
我们一直在努力

如何在BlackBerry PlayBook NDK 2.0环境中使用QT

随着RIM对开源项目的支持力度不断加大,越来越多的开源项目可以在PlayBook NDK环境中使用,继Cocos2dx之后让我们来看看如何在PlayBook NDK 2.0环境中使用QT。


首先有一点遗憾的是目前测试成功的都是在Ubuntu环境中,所以本文也是讲述Ubuntu的PlayBook NDK 环境中如何配置使用QT,需要大家也准备Ubuntu环境,如果对Ubuntu环境不熟悉,或者不习惯使用Ubuntu环境,就只能等后续的文章了。


和以前相同,有关Ubuntu的安装就略过,大家参考其它资料。在我的测试环境中使用的是VMWare虚拟机,同时PlayBook模拟器也是安装在VMWare虚拟中,两个虚拟机都使用NAT方式的网络配置,这样当环境搭建好以后Ubuntu上的PlayBook NDK环境就可以连接PlayBook模拟器进行调试了。


准备好Ubuntu环境后就需要在Ubuntu环境中安装PlayBook NDK 2.0环境,BlackBerry官网上可以直接下载Ubuntu上的PlayBook NDK 2.0 beta3安装程序,下载链接如下:


https://bdsc.webapps.blackberry.com/native/beta/download


在“Native SDK for tablet os”下载按钮下面有“other systems”字样,点击可以选择“Linux”平台,然后开始下载,我下载的文件是


installer-bbndk-2.0.0-beta3-linux-7109-201201122052-201201122215.bin


如果你是在Windows环境中下载的,下载后将文件拷贝到Ubuntu环境中。然后打开terminal窗口,进入下载文件所在的目录,先执行chmod命令修改下载文件的权限,我直接给了所有权限,命令如下:


chmod 777 installer-bbndk-2.0.0-beta3-linux-7109-201201122052-201201122215.bin


修改权限后就可以直接执行该bin文件,执行后会出现图形安装界面,后面的安装过程就和Windows环境差不多了,就是目录名有点差别。


安装好以后随便新建一个PlayBook项目测试一下,项目创建,编译的过程请参考我之前的文章,做这一步的目的是检验PlayBook NDK环境安装是否正确,能否连接PlayBook模拟器进行测试。


确定NDK环境安装成功后开始下载QT包,下载过程是通过git工具从github网站下载,命令格式如下:


 git clone git://github.com/blackberry/Qt.git


如果你的Ubuntu没有安装git的话系统会提示你安装git,提示时会给出安装命令,按照命令执行就可以了,安装完了以后再次执行git clone…命令下载QT包。


执行git命名时最好创建一个专门的目录,如qt,然后进入该目录执行。执行过程会花一段时间,因为需要从github服务器下载Qt包。


执行成功的话该目录会出现一个名为Qt的目录,通过命令cd Qt进入该目录


然后在该目录执行source命令,后面跟随NDK安装目录下的bbndk-env.sh文件名,我的bbndk是安装在/damon/bbndk20上,所以我执行的命令是:
source /damon/bbndk20/bbndk-env.sh


执行后再运行命令./configure-qsk x86,之所以使用参数x86是因为我们的PlayBook模拟器使用的是x86架构的cpu。命令如下:
./configure-qsk x86




执行时会出现很多命令行输出,最后提示配置成功,这时就可以执行make命令对Qt的库进行编译了,命令如下:
$ make


编译过程同样需要花一段时间


编译完成后通过make instlall命令进行安装,命令如下:


make install


安装命令执行后对应的目录就应该出现Qt的so文件了,可以直接去目录检查一下。

安装完了以后启动NDK环境,新建一个BlackBerry tablet OS c/C++项目,在项目新建向导中给项目起个名字,然后选择编程语言是C++,在下面的选择框中选择“Application-Empty Application ”以创建一个新项目,接着在下一页中选择“Simulator-Debug”为激活配置,最后点击“Finish”完成项目创建。


项目创建后需要修改项目的bar-descriptor.xml文档,双击打开该文档,会出现专门的编辑界面,在Assets页面的Build Configuration一栏中选择Simulator-Debug ,然后在下方点击“Add Files”按钮,接着点击“File System”按钮,将Qt/stage/nto/x86/usr/lib/qt4/lib目录下的三个文件libQTCore.so.4.8.0,libQtGui.so.4.8.0和libQtOpenGL.so.4.8.0依次添加进来,再将/Qt/stage/nto/x86/usr/lib/qt4/plugins/platforms/libblackberry.so 文件添加进来。 


添加成功后的结果类似于下图: 


添加了Assets页面的内容后需要手工修改一下bar-descriptor.xml,点击bar-descriptor.xml编辑器的“Source”标签进入源代码编辑状态,将下面这行修改一下:


<asset path=”/qt-x86-lib/Qt/stage/nto/x86/usr/lib/qt4/plugins/platforms/libblackberry.so” type=”Qnx/Elf”>lib/libblackberry.so</asset>

修改成:


<asset path=”/qt-x86-lib/Qt/stage/nto/x86/usr/lib/qt4/plugins/platforms/libblackberry.so” type=”Qnx/Elf”>lib/platforms/libblackberry.so</asset>


注意是将“lib/libblackberry.so”改成了“lib/platforms/libblackberry.so”


然后保存退出。


修改了bar-descriptor.xml后就开始创建程序的源代码文件了,在src目录下新建一个c++源文件,命名为main.cpp


 然后将下面的代码拷贝进去,有关QT编程的细节在这里就不详细讲解了,有空在其他博文中再介绍 


  1. #include <QApplication>   
  2. #include <QPushButton>   
  3. #include <QWidget>   
  4.   
  5. int main(int argc, char *argv[])  
  6. {  
  7.     QCoreApplication::addLibraryPath(“app/native/lib”);  
  8.     QApplication app(argc, argv);  
  9.   
  10.     QWidget window;  
  11.     window.resize(1024, 600);  
  12.   
  13.     QPushButton quit(“Quit”, &window);  
  14.     quit.setGeometry(422, 100, 180, 40);  
  15.     QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));  
  16.   
  17.     window.show();  
  18.     return app.exec();  
  19. }  

创建了main.cpp后就需要修改项目的配置,包括一些编译参数和一些链接参数。


在NDK环境中对上面创建好的QT项目点击右键,选择“project properties”打开项目配置页面。


选择c/c++ build -> settings -> QCC Complier -> Preprocessor


在Include Directories(-l)一栏中添加如下目录


<你的QT目录>/Qt/stage/nto/usr/include/qt4


<你的QT目录>/Qt/stage/nto/usr/include/qt4/QtGui


<你的QT目录>/Qt/stage/nto/usr/include/qt4/QtCore


在Defines(-D)一栏中添加如下内容:


QT_BOOTSTRAPPED


完成后的结果如下:



修改了编译选项后修改链接选项,同样在项目配置界面,选择


 c/c++ build -> settings -> QCC Linker -> Preprocessor->Libraries


在Library Paths (-L)一栏中添加如下内容


 <你的QT目录>/Qt/stage/nto/x86/usr/lib/qt4/lib


在Libraries (-l)一栏中添加如下内容:
QtCore
QtGui
QtOpenGL


添加完成后结果如下:



完成以上配置后其实就可以尝试编译运行这个Qt应用了,不过编译成功后运行时会报找不到plug-in的错误,因为没有指定Plug-in参数,可以直接在运行配置中添加参数。

右键点击项目,选择“Run As -> Run configurations -> Arguments”,在里面添加如下内容:
 -platform blackberry


添加了以上参数后就可以测试该应用了,不过运行会出现闪退的现象,控制台报QFontDatabase的错,错误信息如下:


QFontDatabase: Cannot find font directory … – is Qt installed correctly?


这时需要在bar-descriptor.xml文件中添加一行font目录的配置,加到最后一行</qnx>的前面,内容如下:


<env var=”QT_QPA_FONTDIR” value=”/usr/fonts/font_repository/liberation” />


</qnx>


完成以上修改后编译运行该项目,就可以在模拟器中看到Qt应用运行的结果了,截图如下:


赞(0) 打赏
转载请注明出处:服务器评测 » 如何在BlackBerry PlayBook NDK 2.0环境中使用QT
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏