2014-04-25 51 views
2

我安裝了qt-opensource-linux-x64-android-5.2.1.run以構建QML項目。我在我的主要.qml文件中導入了QtQuick 2.2。我的項目針對安裝的/opt/qt-5.2.1-android。我安裝apk文件到2013年的Nexus 7,我看到的錯誤是:模塊QtQuick 2.2未安裝在Android中運行

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> 

任何幫助,將不勝感激。

回答

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(); 
} 
+0

這幫了我! –