问题排除

本节列出在使用 QtApplicationManager 时可能遇到的某些问题以及如何解决它们。

如何检查我的应用程序管理器实例是否以多进程模式运行?

使用 --verbose 参数启动应用程序管理器,并验证输出中是否显示了 WindowManager: 以 Wayland 模式运行。或者,启动一个应用程序,并确保你可以看到至少一个正在运行的 appman-launcher-qml 进程。

如何了解为什么我的应用程序管理器实例不支持多进程模式?

检查“应用程序管理器配置”,您可以在运行 qmake 命令时看到。可能您的配置不支持 QtCompositor 模块。

我的应用程序在应用程序管理器内运行缓慢。有哪些可能的解决方案?

验证您的应用程序是否正在使用硬件加速。

如何了解我的应用程序是否使用硬件加速?

以带有环境变量 QSG_INFO=1 运行 appman,启动应用程序时应看到类似的输出

[DBG  | qt.scenegraph.general | c.p.music] Using sg animation driver
[DBG  | qt.scenegraph.general | c.p.music] Animation Driver: using vsync: 16.95 ms
[DBG  | qt.scenegraph.general | c.p.music] texture atlas dimensions: 1024x1024
[DBG  | qt.scenegraph.general | c.p.music] R/G/B/A Buffers:    8 8 8 8
[DBG  | qt.scenegraph.general | c.p.music] Depth Buffer:       24
[DBG  | qt.scenegraph.general | c.p.music] Stencil Buffer:     8
[DBG  | qt.scenegraph.general | c.p.music] Samples:            0
[DBG  | qt.scenegraph.general | c.p.music] GL_VENDOR:          VMware, Inc.
[DBG  | qt.scenegraph.general | c.p.music] GL_RENDERER:        llvmpipe (LLVM 5.0, 256 bits)
[DBG  | qt.scenegraph.general | c.p.music] GL_VERSION:         3.0 Mesa 17.3.0

如果 GL_RENDERERllvmpipe,您正在为您的 Wayland 客户端使用软件渲染。

注意:此信息还适用于基于应用 ID 前缀的系统界面本身。在上面的示例中,com.pelagicore.music 被截断为 c.p.music

如何启用硬件加速?

这取决于您的硬件和操作系统。

您需要确保已经安装了正确的驱动程序。

  • 对于 Ubuntu 或 Debian 上的 NVIDIA,您需要 nvidia-egl-wayland-icd
  • 对于 Ubuntu 或 Debian 上的 Intel,您需要 libwayland-egl1-mesa

在桌面系统中,确保您的 Qt 已配置为至少使用 OpenGL ES2/ES3 而不是桌面 OpenGL。在 Qt 的配置摘要中,验证您是否看到了以下行

OpenGL ES 2.0 ........................ yes

您可以通过使用 --opengl es2 配置选项来强制 Qt 使用 OpenGL ES2。

此外,您还需要确保已构建 wayland-egl 集成插件。如果插件构建成功,您应该有如下文件: <QT_DIR>/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so

如果该文件不可用,请检查 QtWayland 的配置摘要,并确保该插件已构建。

我的应用程序在应用程序管理器内立即崩溃。有哪些可能的解决方案?

您的系统设置可能不允许使用 OpenGL 的 Wayland 客户端。在这种情况下,如果应用程序无法进行硬件加速渲染,则应用程序管理和 QML 应用程序启动器会输出一个关键日志消息。

请确保启用硬件加速。

您还可以通过设置环境变量 $QT_QUICK_BACKENDsoftware 来强制软件渲染,但前提是您的应用程序没有显式使用 OpenGL 功能。例如,着色器。

© 2024 Qt 公司有限。本文件中包含的文档贡献版权属于各自的拥有者。本文件提供的内容是根据 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 及其相关标志是芬兰的 Qt 公司和/或在全世界其他国家的商标。所有其他商标均为各自所有者的财产。