Das Gnome Maps-Programm wird nie ausgeführt

Sep 29 2020

Ich habe dieses Problem beim Ausführen von GNOME Maps

~$ gnome-maps

(org.gnome.Maps:10414): Gjs-WARNING **: 19:43:34.553: Some code called array.toString() on a Uint8Array instance. Previously this would have interpreted the bytes of the array as a string, but that is nonstandard. In the future this will return the bytes as comma-separated digits. For the time being, the old behavior has been preserved, but please fix your code anyway to explicitly call ByteArray.toString(array).
(Note that array.toString() may have been called implicitly.)
0 <TOP LEVEL> ["resource:///org/gnome/Maps/js/osmTypes.js":32]
1 <TOP LEVEL> ["resource:///org/gnome/Maps/js/osmEditDialog.js":35]
2 <TOP LEVEL> ["resource:///org/gnome/Maps/js/osmEdit.js":25]
3 <TOP LEVEL> ["resource:///org/gnome/Maps/js/contextMenu.js":33]
4 <TOP LEVEL> ["resource:///org/gnome/Maps/js/mainWindow.js":33]
5 <TOP LEVEL> ["resource:///org/gnome/Maps/js/application.js":35]
6 <TOP LEVEL> ["resource:///org/gnome/Maps/js/main.js":43]
7 start() ["resource:///org/gnome/gjs/modules/package.js":209]
8 <TOP LEVEL> ["/usr/bin/gnome-maps":2]


(org.gnome.Maps:10414): Gdk-WARNING **: 19:43:36.525: Native Windows taller than 65535 pixels are not supported
Gdk-Message: 19:43:36.574: Error 71 (Protocol error) dispatching to Wayland display.

19:43:36.574 (Diese Nachricht hat sich viele Male geändert)

Was ist das?

Antworten

RomanRiabenko Oct 01 2020 at 02:17

Angenommen, GNOME Maps stürzt beim Start Gdk-Messagein Debian 10 unter GNOME ab:

Error 71 (Protocol error) dispatching to Wayland display.

Dies bedeutet, dass GDK als GTK-Rendering-Engine aus irgendeinem Grund nicht mit Mutter kommunizieren kann, dem Wayland-Compositor in GNOME. Infolgedessen kann Ihre Anwendung dem System nicht erklären, wie sie angezeigt werden soll, und stürzt ab. Unter der Annahme, dass Ihre Debian 10-Installation mit jeder anderen identisch ist, kann der Fehler in Kombination mit Grafiktreibern und Firmware verursacht werden, die für Ihre Hardware spezifisch sind.

Debian verfügt über eine Reihe integrierter Fallback-Mechanismen für den Fall, dass Wayland für Sie noch nicht funktioniert. Während einige von ihnen automatisch sind, gibt es eine, die für den Endbenutzer offensichtlich ist. Sie können auf dem Anmeldebildschirm eine andere Sitzung als die Standard-Sitzung "GNOME" auswählen, in der Wayland verwendet wird. Drücken Sie das Zahnradsymbol ⚙️ unter dem Passwortfeld, um darauf zuzugreifen. Weitere Optionen sind "System X11 Default" und "GNOME on Xorg ". Sobald Sie sich angemeldet haben, scheint sich nichts geändert zu haben, sodass Sie Ihre aktuelle Sitzung mit überprüfen können echo $XDG_SESSION_TYPE. GNOME Classic ändert viel mehr als nur den Anzeigeserver.

Es ist auch möglich, eine Anwendung zu erzwingen, die im Rahmen der Wayland-Sitzung auf XWayland ausgeführt wird . Auf diese Weise müssen Sie die Standardsitzung nicht ändern und können Wayland weiterhin verwenden, während Probleme vermieden werden, die die Anwendung unter Wayland verursacht.

GTK3

Die GDK_BACKENDUmgebungsvariable, wenn sie auf „wayland“ gesetzt ist , wird zwangsläufig eine GTK3 Anwendung mit dem Wayland Backend laufen. Wenn Sie die Umgebungsvariable auf "x11" setzen, wird sie ebenfalls mit dem X11-Backend ausgeführt (nützlich, um Anwendungen zur Verwendung von Xwayland zu zwingen, bei denen Kompatibilitätsprobleme auftreten, wenn sie im nativen Wayland-Modus arbeiten).

Sie können enveine Anwendung in einer geänderten Umgebung mit X11 GDK-Backend ausführen. So starten Sie GNOME Maps unter X11 in Wayland vom Terminal aus:

$ env GDK_BACKEND=x11 gnome-maps

Wenn es funktioniert, können Sie den ExecSchlüssel des Desktop-Eintrags der Anwendung unter ändern /usr/share/applications. Für GNOME Maps ist es in org.gnome.Maps.desktop:

Exec=gapplication launch org.gnome.Maps %U

Das modifizierte wäre:

Exec=env GDK_BACKEND=x11 gapplication launch org.gnome.Maps %U

Auf diese Weise wird Maps in XWayland gestartet, wenn es von GNOME aus gestartet wird, indem Sie beispielsweise auf das Anwendungssymbol klicken.