QML设备部署

Ger*_*erg 4 c++ deployment android qml

我已经设置了项目来运行带有插槽通信的C++的QML.现在我偶然发现了这样的信息:

void QDeclarativeView::continueExecute()): 
    file:///data/data/org.qtproject.example.input/files/Input.qml: File not found 
Run Code Online (Sandbox Code Playgroud)

我四处搜索并检查了类似的问题,因此我遵循了这个建议,更改了我的项目文件,如下所示:

QT += qml quick sensors xml
QT += declarative
SOURCES += \
    main.cpp
OTHER_FILES += \
    Input.qml
HEADERS += \
    Input.h
RESOURCES += \
    Input.qrc

# Required for deployment (?) :
QML_FILES.source = qml
QML_FILES.target = .
DEPLOYMENTFOLDERS += QML_FILES
# Required for deployment too (?) :
include(qmlapplicationviewer/qmlapplicationviewer.pri)
qtcAddDeployment()
Run Code Online (Sandbox Code Playgroud)

虽然将这个hack添加到项目文件似乎适用于Symbian和Harmattan,但对于Android,最后两行不能解决问题,因为编译器会给出消息:

./input/qmlapplicationviewer/qmlapplicationviewer.pri:-1: error: No such file or directory
./input.pro:22: 'qtcAddDeployment' is not a recognized test function.
Run Code Online (Sandbox Code Playgroud)

即使对于Qt5,我们是否应该担心目标,即使我们定义项目时我们已经为Android设备设置了它?

那么,有人可以就如何将QML部署到Android设备提出任何建议吗?也许一些相同的黑客会做同样的魔术,适用于Symbian,但也适用于Android?

小智 6

尝试将您的Android目标从API 19降级到17.显然,API 19无法正常使用Qt 5 for Android.

使用qtcAddDeployment和qmlapplicationviewer.pri也可以解决您的问题.但在进入这个方向之前,你应该仔细看看Qt 5.2中关于Android部署的 Qt博客的文章.