我已经将项目设置为使用带有插槽通信的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?
答案 0 :(得分:6)
尝试将您的Android目标从API 19降级到17.显然,API 19与Qt 5 for Android无法正常工作。
使用qtcAddDeployment和qmlapplicationviewer.pri也可以解决您的问题。但在进入这个方向之前,你应该仔细查看Android Deployment in Qt 5.2上Qt博客的文章。