2

Harmattan の Qt 4.7.4/QtQuick 1.0 で記述されたアプリケーションをデプロイするときに問題が発生しました。シミュレーターではすべてがうまくいきますが、Nokia N9 (MeeGo 1.2 Harmattan、バージョン PR1.1) にデプロイされた場合、アプリケーションはユーザー インターフェイスを描画しません。デプロイは成功し、アプリはデバイスのアプリケーション リストに表示され、QtCreator ではコンソール ログ出力も確認できますが、アプリが実際にデバイスで実行されている兆候はありません。システム内を自由にナビゲートできます。 QtCreatorが私のアプリケーションが実行されていると言っている間に他のアプリを開きます。

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.

コンパイルの出力からエラーに関するヒントが得られるかもしれませんが、何が問題なのかわかりません。ばかばかしいことに、以前の開発時点では、アプリはデバイス上で動作していました。しかし、残念ながら、その後何が変わったのかわかりません。

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

0

最後に、私は問題を解決しました。それは非常に些細なことでしたが、何時間もかかりました。

コードを汎用的にするために (私はそう思いました)、ルート QML 要素の正確な幅と高さを宣言したくありませんでした。代わりに、私は指定しました

anchors.fill: parent

さて、それが問題でした。2 行のコードを追加するだけで問題が解決しました (少なくとも、Nokia N9 でアプリケーションを実行する場合)。

width: 480
height: 854

シミュレーターはフィル アンカーで管理できるように見えますが、N9 はルート要素でそれを認識しないため、画面にはまったく何も描画されません。

私を正しい方向に導いてくれたfejdに感謝します。

于 2012-01-23T20:40:24.743 に答える