在Android中运行时未安装模块QtQuick 2.2

时间:2014-04-25 22:36:53

标签: android qt

我安装了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>

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

我弄清楚我做错了什么。不知怎的,在我的研究中,我在main.cpp的轴上缠绕了一点。我使用的是QDeclarativeView而不是QQuickViewQDeclarativeView适用于较旧的QtQuickQQuickView适用于较新的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();
}