MeeGo を使用すると、Qt アプリケーションが Nokia N9 にユーザー インターフェイスを描画しません

StackOverflow https://stackoverflow.com/questions/8831126

質問

Qt 4.7.4/QtQuick 1.0 で書かれたアプリケーションを Harmattan にデプロイするときに問題が発生します。シミュレータではすべてが正常に動作しますが、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.

コンパイル出力にはエラーに関するヒントが示されている可能性がありますが、何が問題なのかはわかりません。おかしなことに、初期の開発時点では、アプリはデバイス上で動作していました。しかし残念ながら、それ以来自分が何が変わったのかはわかりません。

ご協力をよろしくお願いいたします。前もって感謝します。

役に立ちましたか?

解決

最後に、問題を解決しました。とても些細なことですが、何時間もかかりました。

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

anchors.fill: parent

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

width: 480
height: 854

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

fejdさん、私を正しい方向に導いてくれてありがとう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top