我正在使用 .net 和 sdk 创建一个简单的 hello world GUI 应用程序,当我将它转换为 snap 并运行它时,我首先收到此错误,我确实添加了 x11 包,但我希望我的应用程序仅使用 wayland 服务器进行显示,因为我正在为 ubuntu 核心构建此应用程序。
GDK Backend: wayland (HelloWorldGuiApp:91366):Gtk-WARNING **: 22:44:58.503: cannot open display: :0
这是我的 .net apk 的 snapcraft.yaml。
{
name: helloworldguiapp
base: core22
version: ‘1.0’
summary: A simple Hello World GUI app
description: | This is a simple .NET Gtk# Hello World GUI application designed to run in kiosk mode using ubuntu-frame.
grade: stable
confinement: strict
architectures:
build-on: amd64
build-on: arm64
apps:
helloworldguiapp:
command: HelloWorldGuiApp
daemon: simple
restart-condition: always
plugs:
- wayland
- opengl
- network
- content[graphics-core22] # Added the missing graphics-core22 plug
environment:
WAYLAND_DISPLAY: wayland-0
parts:
helloworldguiapp:
plugin: dotnet
dotnet-build-configuration: Release
dotnet-self-contained-runtime-identifier: linux-x64
source: .
build-packages:
- dotnet-sdk-8.0
stage-packages:
- libgtk-3-0
- libglib2.0-0
- libwayland-client
}
我应该对我的 yaml 文件做哪些更改?
我尝试在 ubuntu core 上运行 .net snap,并期望它在 ubuntu core 上打开 hello world gui,但却出现了这个警告=>
GDK Backend: wayland (HelloWorldGuiApp:91366):Gtk-WARNING **: 22:44:58.503: cannot open display: :0
我不知道.net 部分,但是因为它似乎是基于 gtk,所以这应该是一个很好的开始:
https://mir-server.io/docs/packaging-a-gtk3-application-as-an-iot-gui
这看起来好像您的应用正在尝试使用桌面门户。但没有桌面会话。如果您的应用在没有 dbus 的情况下无法运行,请查看 Qt 示例。
这看起来像是尝试访问
XKB_CONFIG_ROOT
snap 之外的内容,但在核心系统上无法实现,因为预期的文件不存在。尝试将其添加到您的 app.environment 中:xkb-data
如果尚未实施,您可能还需要进行分阶段。嗯,可能由于上述原因,您的应用程序出现段错误。
没有明显的理由说明这行不通。但应用程序可能需要进行一些配置才能与 snap confinement 配合使用。