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博客的文章.