首页 文章

自定义QML模块部署到Android:缺少QML依赖项

提问于
浏览
1

我正在开发一个包含一些特殊类型的自定义QML模块(我们称之为MyModule) . 它在其他应用程序项目中用作预编译库(即源代码不可用,它通过导入MyModule 1.0使用,设置必要的导入路径等) . 该模块包含C-base QML类型以及QML文件,这些文件本身导入QtQuick模块,如QtQuick.Controls和QtQuick.Window .

当我尝试将使用MyModule开发的应用程序部署并执行到Android时,Androiddeployqt / qmlimportscanner不会选择MyModule的依赖项并将其包含在APK中,从而产生以下消息: module "QtQuick.Controls" is not installed

有没有办法让这些QML依赖项包含在APK中,而无需在应用程序源目录中创建包含所有导入的虚拟qml文件,因此可以通过qmlimportscanner获取它们?

1 回答

  • 3

    您可以尝试将depends关键字添加到 qmldir 文件中:

    声明此模块依赖于另一个模块 . 示例:依赖于MyOtherModule 1.0只有在隐藏依赖项的情况下才需要此声明:例如,当一个模块的C代码用于加载QML(可能是有条件的),然后依赖于其他模块 . 在这种情况下,依赖声明是必要的,以包括应用程序包中的其他模块 .

    要获得一些灵感,请查看以下内容:

    http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/imports/controls/qmldir

相关问题