2017-05-16 2 views
1

Ich portiere Qt (C++) und qml-basierte App auf Android-Plattform. Ich bin nicht mit Qt Creator wegen der Art des Projekts.Qt, Qml und C++ basierte Anwendung Portierung auf Android

Ich habe den Code mit Hilfe von ndk kompiliert und alle erforderlichen .so-Dateien für meine C++ - Komponenten generiert. Erstellt das Projekt in Android-Studios, enthalten die JiniLibs (*.so) Dateien, alos, verwendet Qt bereitgestellten Activity/Loader/Delegate-Klassen und Android-App zu schreiben. Die App lädt "main.so" und die Anwendung wird gestartet. Ich kann die Protokolle sehen, die mir sagen, dass es geladen ist. Ich habe QGuiApplication Objekt erstellt und beim Erstellen QmlComponent, ich versuche, main.qml in QmlComponent instance innerhalb main.so übergeben, aber ich weiß nicht, wie Sie den Pfad von main.qml angeben?

Ich versuchte qrc:/main.qml, assets:/main.qml, aber kein Glück.

HINWEIS: Ich habe meine main.qml in assets Ordner platziert. Ich bin mir nicht einmal sicher, wann ich diese Datei während der Verpackung aufbewahren soll.

Auf der Suche nach Vorschlag, wie geben wir Assets/Ressourcenpfade in C++ - Code.

+0

Lesen Sie die Dokumentation auf der [Qt Ressourcen System] hat (http://doc.qt.io/qt-5/resources.html). – MrEricSir

+0

Qt Android-Hilfsklassen kopieren alle Assets unter '/ data/data/org.qtproject.example.test/qt-reserved-files /' aber Sie müssen sicherstellen, dass Assets Informationen in 'libs.xml' sein sollten welches einen Abschnitt '' hat – Syed

Antwort

0

Qt Android Hilfsklassen kopieren Sie alle Vermögenswerte auf /data/data/org.qtproject.example.test/qt-reserved-files/ Weg, aber Sie müssen sicherstellen, dass in res/values/libs.xml Vermögenswerte Informationen abgebildet werden sollen, die einen Abschnitt

0
// QQmlEngine* m_pQmlEngine; 
m_pQmlEngine->setBaseUrl("qrc:/qml/");