我正在开发一个包含一些特殊类型的自定义 QML 模块(我们称之为 MyModule)。它用作其他应用程序项目的预编译库(即源代码对它们不可用,它通过 import MyModule 1.0、设置必要的导入路径等来使用)。该模块包含基于 C++ 的 QML 类型以及本身导入 QtQuick 模块(如 QtQuick.Controls 和 QtQuick.Window)的 QML 文件。
当我尝试将使用 MyModule 开发的应用程序部署并执行到 Android 时,androiddeployqt/qmlimportscanner 不会拾取 MyModule 的依赖项并将其包含在 APK 中,这会导致如下消息:module "QtQuick.Controls" is not installed
有没有办法将这些 QML 依赖项包含在 APK 中,而无需创建包含应用程序源目录中所有导入的虚拟 qml 文件,以便 qmlimportscanner 可以拾取它们?
您可以尝试添加depends http://doc.qt.io/qt-5/qtqml-modules-qmldir.html#contents-of-a-module-definition-qmldir-file关键字到您的qmldir
file:
声明该模块依赖于另一个模块。
Example:
depends MyOtherModule 1.0
仅在隐藏依赖项的情况下才需要此声明:例如,当一个模块的 C++ 代码用于加载 QML(可能是有条件的),然后该 QML 依赖于其他模块时。在这种情况下,需要依赖声明来将其他模块包含在应用程序包中。
想要获得一些灵感,请查看以下内容:
http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/imports/controls/qmldir http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/imports/controls/qmldir
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)