QML设备部署

时间:2013-12-30 03:28:57

标签: android c++ deployment qml

我已经将项目设置为使用带有插槽通信的C ++运行QML。现在我偶然发现了这条消息:

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

我四处搜索并检查similar problem,因此我按照该建议,更改了我的项目文件,如下所示:

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()

虽然将这个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.

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

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

1 个答案:

答案 0 :(得分:6)

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

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