我安装了qt-opensource-linux-x64-android-5.2.1.run来构建一个QML项目。我在主.qml文件中导入了QtQuick 2.2。我的项目针对已安装的/opt/qt-5.2.1-android。我将.apk安装到2013 Nexus 7中。我看到的错误是:
W/Qt (17431): util/qdeclarativeview.cpp:546 (void QDeclarativeView::continueExecute()): qrc:/multi_page_app.qml:1:1: module "QtQuick" version 2.2 is not installed
我也尝试用/opt/qt-5.3.0-android构建,但它导致了同样的错误。我肯定错过了什么。关于我做错了什么想法?
这是我的构建脚本:
#!/bin/bash
export ANDROID_NDK_ROOT=/opt/android-ndk-r9d
export ANDROID_SDK_ROOT=/opt/adt-bundle-linux-x86_64-20140321/sdk
export PATH=/opt/qt-5.2.1-android/5.2.1/android_armv7/bin:${PATH}
export JAVA_HOME=/opt/jdk
export ANT_HOME=/usr/bin/ant
qmake
make install INSTALL_ROOT=android-build
androiddeployqt --output android-build
这是我的.pro文件:
QT += declarative qml quick widgets
SOURCES += main.cpp
RESOURCES += multi_page_app.qrc
这是我的.qml文件:
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.0
ApplicationWindow {
title: qsTr("Multi Screen App")
width: 1200
height: 1920
}
这是我的main.cpp
#include <QApplication>
#include <QtDeclarative/QDeclarativeView>
#include <QQuickView>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDeclarativeView view;
view.setSource(QUrl("qrc:/multi_page_app.qml"));
view.show();
return app.exec();
}
这是我的.qrc文件:
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource prefix="/">
<file>multi_page_app.qml</file>
</qresource>
</RCC>
任何帮助都将不胜感激。
答案 0 :(得分:3)
我弄清楚我做错了什么。不知怎的,在我的研究中,我在main.cpp
的轴上缠绕了一点。我使用的是QDeclarativeView
而不是QQuickView
。 QDeclarativeView
适用于较旧的QtQuick
。 QQuickView
适用于较新的QtQuick 2.x
。所以,这是我的新main.cpp
:
#include <QApplication>
#include <QQuickView>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQuickView view;
view.setSource(QUrl("qrc:/multi_page_app.qml"));
view.show();
return app.exec();
}