2012-01-12 61 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不承認它的根元素,因此在屏幕上繪製正好沒事。

謝謝你的幫助,使我走向了正確的方向。

相關問題