Qt – Androidアプリ開発 – exportとproperty alias問題

前回のQt – Androidアプリ開発 – property aliasでは、mainWindowsエイリアスが他のqmlから認識できない問題が起きました。
これは、exportの仕方とproperty aliasの関係から起きたと考えています。
 そこで、今までの作業を見直しました。
 まず、Rectangleなどの画面要素は、ナビゲーターからライブラリに切り替えて、選択配置する。
 外部から引っ張ってくるリソースファイルは、qmlフォルダに入れて、ライブラリのリリースタブで確認して利用する。
 そして、mainWindow,bubbleをexportするという意味は、Pageをルートアイテムとして、その配下のアイテムプロパティとして、参照できるようにする、といった意味だと思います。
 property alias bubble: bubble
 property alias mainWindow: mainWindow
 が、Pageのスクリプトに追加されます。
 さて、bubbleを右クリックして、Move Component into separate fileという作業は、現在Page1に定義されている、imageとしてのbubbleを外部ファイルに出すといった作業のようです。
 その目的は、デザインモードでは付加できない方法でbubbleを動かすことです。
上記画面では、x,yなどの位置情報も外部に出し、ui.qmlファイルを作らず、Bubble.qmlファイルを作成します。
1 2 3 4 5 6 7 8 9 10  | import QtQuick 2.12 import QtQuick.Controls 2.5 Image {     id: bubble     x: 146     y: 108     fillMode: Image.PreserveAspectFit     source: "Bluebubble.svg" }  | 
結果として、Page1FormのRectangleは以下のようになります。
1 2 3 4 5 6 7 8 9  |     Rectangle {         id: mainWindow         color: "#ffffff"         anchors.fill: parent         Bubble {             id: bubble         }     }  | 
ここでビルドしますと、次のワーニングが出ます。
 注意:一部の入力ファイルは非推奨のAPIを使用またはオーバーライドしています。
 注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
 このワーニングは、Androidに関するもので、少し古いコードができているようです。
 他にも以下のワーニングが出ます。
 C:\Users\…\AppData\Local\Android\Sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-strip: ‘D:\Qt\Qt-projects\build-firstsample-bubble-Android_for_armeabi_v7a_Clang_Qt_5_12_6_for_Android_ARMv7-Debug\android-build\build\intermediates\transforms\mergeJniLibs\debug\0\lib\armeabi-v7a\libqml_QtQuick_Controls.2_Fusion_libqtquickcontrols2fusionstyleplugin.so’: No such file
C:\Users\…\AppData\Local\Android\Sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-strip: ‘D:\Qt\Qt-projects\build-firstsample-bubble-Android_for_armeabi_v7a_Clang_Qt_5_12_6_for_Android_ARMv7-Debug\android-build\build\intermediates\transforms\mergeJniLibs\debug\0\lib\armeabi-v7a\libqml_QtQuick_Controls.2_Material_libqtquickcontrols2materialstyleplugin.so’: No such file
C:\Users\…\AppData\Local\Android\Sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-strip: ‘D:\Qt\Qt-projects\build-firstsample-bubble-Android_for_armeabi_v7a_Clang_Qt_5_12_6_for_Android_ARMv7-Debug\android-build\build\intermediates\transforms\mergeJniLibs\debug\0\lib\armeabi-v7a\libqml_QtQuick_Controls.2_Universal_libqtquickcontrols2universalstyleplugin.so’: No such file
また、apkを作成したあと、以下のワーニングが出ます。
 Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.impl
 Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Fusion.impl
 Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Imagine.impl
 Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Material.impl
 Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Universal.impl
 これらは、ビルドが成功して、端末で動く限り、無視して問題ありません。


