2012-01-12 59 views
2

我在为Harmattan部署使用Qt 4.7.4/QtQuick 1.0编写的应用程序时遇到问题。 当模拟器中的所有内容都正确时,应用程序在诺基亚N9(MeeGo 1.2 Harmattan,版本PR1.1)上部署时不会绘制任何用户界面。部署成功,应用程序可以在设备上的应用程序列表中找到,甚至可以在QtCreator中看到控制台日志输出,但是没有迹象表明应用程序实际在设备上运行 - 我可以自由浏览系统并打开其他应用程序,而QtCreator说我的应用程序正在运行。Qt应用程序不会在MeeGo上在诺基亚N9上绘制任何用户界面

在QtCreator应用输出图说:

Killing remote process(es)... 
Starting remote process ... 
Remote process started. 
Using the meego graphics system 
Found SGX/MBX driver, enabling FullClearOnEveryFrame 
Found v1.4 driver, enabling brokenTexSubImage 

而且继承人的编译输出:

Running build steps for project pacca... 
Configuration unchanged, skipping qmake step. 
Starting: "C:\qtsdk\madde\bin\make.exe" -w 
make: Entering directory `/d/qtproject/pacca' 
make: Nothing to be done for `first'. 
make: Leaving directory `/d/qtproject/pacca' 
The process "C:\qtsdk\madde\bin\make.exe" exited normally. 
Creating package file ... 
Package Creation: Running command 'c:/qtsdk/madde/bin/mad dpkg-buildpackage -nc -uc -us'. 
dpkg-buildpackage: set CFLAGS to default value: -g -O2 
dpkg-buildpackage: set CPPFLAGS to default value: 
dpkg-buildpackage: set LDFLAGS to default value: 
dpkg-buildpackage: set FFLAGS to default value: -g -O2 
dpkg-buildpackage: set CXXFLAGS to default value: -g -O2 
which: pgp: unknown command 
dpkg-buildpackage: source package pacca 
dpkg-buildpackage: source version 0.0.1 
dpkg-buildpackage: source changed by unknown <> 
dpkg-buildpackage: host architecture armel 
debian/rules build 
make: Nothing to be done for `build'. 
debian/rules binary 
dh_testdir 
dh_testroot 
dh_clean -k 
dh_installdirs 
# Add here commands to install the package into debian/pacca. 
/usr/bin/make INSTALL_ROOT="/d/qtproject/pacca"/debian/pacca install 
make[1]: Entering directory `/d/qtproject/pacca' 
cp -f -r d:/qtproject/pacca/qml/pacca /d/qtproject/pacca/debian/pacca/opt/pacca/qml/ 
install -m 644 -p d:/qtproject/pacca/pacca80.png /d/qtproject/pacca/debian/pacca/usr/share/icons/hicolor/80x80/apps/ 
install -m 644 -p d:/qtproject/pacca/pacca_harmattan.desktop /d/qtproject/pacca/debian/pacca/usr/share/applications/ 
install -m 755 -p "pacca" "/d/qtproject/pacca/debian/pacca/opt/pacca/bin/pacca" 
make[1]: Leaving directory `/d/qtproject/pacca' 
dh_testdir 
dh_testroot 
dh_installchangelogs 
dh_installdocs 
dh_installexamples 
dh_installman 
dh_link 
dh_strip 
dh_compress 
dh_fixperms 
dh_installdeb 
# dh_shlibdeps # Uncomment this line for use without Qt Creator 
dh_gencontrol 
dh_md5sums 
dpkg-gencontrol: warning: unknown substitution variable ${shlibs:Depends} 
dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends} 
dh_builddeb 
aegis-manifest: No findings in 'pacca'. 
dpkg-genchanges -b -u.. >../pacca_0.0.1_armel.changes 
dpkg-buildpackage: binary only upload (no source included) 
dpkg-genchanges: binary-only upload - not including any source code 
Can't locate Debian/Debhelper/Dh_Lib.pm in @INC (@INC contains: /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at c:/qtsdk/madde/madbin/dh_clean line 10. 
BEGIN failed--compilation aborted at c:/qtsdk/madde/madbin/dh_clean line 10. 
Package created. 
Installing package to sysroot ... 
Package 'pacca' removed. 

Package 'pacca' installed. 

Connecting to device... 
Preparing SFTP connection... 
Starting upload... 
Successfully uploaded package file. 
Installing package to device... 
(Reading database ... 41700 files and directories currently installed.) 
Preparing to replace pacca 0.0.1 (using .../pacca_0.0.1_armel.deb) ... 
Unpacking replacement pacca ... 
aegis-installing pacca (from '') 
Setting up pacca (0.0.1) ... 
Processing triggers for desktop-file-utils ... 
Processing triggers for hicolor-icon-theme ... 
Package installed. 
Deployment finished. 

虽然编译输出可能会提供有关该错误的一些提示,我不知道是什么出错了。可笑的是,在一些早期的开发阶段,应用程序在设备上工作。但不幸的是,我不知道自那以后我有什么变化。

任何帮助,高度赞赏。提前致谢。

+0

您的主QML文件中是否有PageStackWindow或Page?您是否导入QtQuick 1.0或1.1? – fejd 2012-01-16 22:20:50

+0

我的主要QML文件中既没有PageStackWindow也没有Page。我使用QtQuick 1.0。你认为导入QtQuick 1.1可以解决问题吗?我会试一试。 – endowzoner 2012-01-17 10:13:17

+0

Qt 4.7.4可能包含Qt Quick 1.1,但无论如何它都可能包含1.0。当我在一个文件中包含1.1和另一个文件时,我遇到了问题。如果您在根项目中添加Component.onCompleted {//获取组件状态},是否会在控制台中获得任何日志输出?否则,运行和部署日志对我来说看起来不错。我建议Page或PageStackWindow的原因是我见过的大多数例子似乎都使用它们,或者说Window。但既然你说过它在那之前工作,那可能不是问题。 – fejd 2012-01-17 21:00:49

回答

0

最后,我解决了这个问题。这是一件非常微不足道的事情 - 但是,这花了我很多时间。

为了使代码具有通用性(我认为),我不想为我的根QML元素声明确切的宽度和高度。相反,我指定

anchors.fill: parent

嗯,这就是问题所在。只需添加2行代码解决了我的问题(至少,在诺基亚N9上执行应用程序)。

width: 480 
height: 854 

看起来虽然模拟器可以用填充锚管理的N9不承认它的根元素,因此在屏幕上绘制正好没事。

谢谢你的帮助,使我走向了正确的方向。

相关问题