【问题标题】:Qt, Qml and C++ based application porting to Android基于 Qt、Qml 和 C++ 的应用程序移植到 Android
【发布时间】:2017-05-16 16:59:39
【问题描述】:

我正在将基于 Qt(C++) 和 qml 的应用程序移植到 Android 平台。由于项目的性质,我不使用 Qt Creator

我已经使用 ndk 编译了代码并为我的 C++ 组件生成了所有必需的 .so 文件。在 Android 工作室创建项目,包括 jiniLibs(*.so) 文件,alos,使用 Qt 提供的 Activity/Loader/Delegate 类并编写 Android 应用程序。应用程序加载“main.so”并启动应用程序。我可以看到告诉我它已加载的日志。我创建了QGuiApplication 对象,在创建QmlComponent 时,我试图将main.qml 传递到QmlComponent instancemain.so,但我不知道如何指定main.qml 的路径?

我尝试了qrc:/main.qmlassets:/main.qml,但没有成功。

注意:我将main.qml 放在assets 文件夹中。我什至不确定在打包时何时放置该文件。

寻求建议,我们如何在 C++ 代码中指定资产/资源路径。

【问题讨论】:

  • 阅读Qt Resource System上的文档。
  • Qt Android 助手类复制/data/data/org.qtproject.example.test/qt-reserved-files/ 处的所有资产,但您需要确保资产信息应位于libs.xml 中,其中包含<array name="bundled_in_assets"> 部分

标签: android c++ qt qml


【解决方案1】:
// QQmlEngine* m_pQmlEngine;
m_pQmlEngine->setBaseUrl("qrc:/qml/");

【讨论】:

    【解决方案2】:

    Qt Android 助手类复制/data/data/org.qtproject.example.test/qt-reserved-files/ 路径中的所有资产,但您需要确保资产信息应映射到具有部分的res/values/libs.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-21
      • 2011-03-13
      相关资源
      最近更新 更多