![数独无法从应用程序菜单启动(无效的桌面入口文件)](https://linux22.com/image/1024799/%E6%95%B0%E7%8B%AC%E6%97%A0%E6%B3%95%E4%BB%8E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%8F%9C%E5%8D%95%E5%90%AF%E5%8A%A8%EF%BC%88%E6%97%A0%E6%95%88%E7%9A%84%E6%A1%8C%E9%9D%A2%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6%EF%BC%89.png)
我安装了Ubuntu 18.04.6 desktop
,然后Lubuntu-desktop
。当我想运行游戏(例如数独)时,它会写入。
Invalid desktop entry file:'/usr/share/applications/gnome-sudoku.desktop
任何游戏都无法运行。其他应用程序可以顺利启动。
答案1
总结
- 打开终端并输入
gnome-sudoku
(在 LXQT 下)检查 gnome-sudoku 是否在你的路径上 - 如果有效,请尝试注释掉
DBusActivatable=true
(或将其设置为 false)/usr/share/applications/org.gnome.Sudoku.desktop
(或者更确切地说,/usr/share/applications/gnome-sudoku.desktop
根据您的情况)并重新启动 LXQT 会话(注销 + 登录)。您必须是 su 才能编辑(例如sudo nano ...
)。从应用程序菜单启动 Sudoku。
如果有效,请告诉我。
长版本:
当你查找时/usr/share/applications/org.gnome.Sudoku.desktop
你会发现以下一行:
DBusActivatable=true
freedesktop.org 在其规格:
一个布尔值,指定此应用程序是否支持 D-Bus 激活。如果缺少此键,则默认值为 false。如果值为 true,则实现应该忽略 Exec键并发送 D-Bus 消息以启动应用程序。有关其工作原理的更多信息,请参阅 D-Bus 激活。应用程序仍应在其桌面文件中包含 Exec= 行,以与不理解 DBusActivatable 键的实现兼容。
简而言之,这意味着数独不是通过简单的命令启动,而是通过发送 D-Bus 消息启动。
当停用该DBusActivatable
条目时,Exec
仍使用该条目,但它应该可以正常工作。
我强烈认为 LXQT 和 Gnome 在 D-Bus 和软件包方面一定存在不兼容性gnome-games
。
我通过启动 来测试它,而无需自行安装 LXQT dbus-monitor
。将开关设置为true
我可以看到以下消息(通过“Acitvate”方法启动数独):
method call time=1636304012.356091 sender=:1.90 -> destination=org.gnome.Sudoku serial=7 path=/org/gnome/Sudoku; interface=org.freedesktop.Application; member=Activate
array [
dict entry(
string "desktop-startup-id"
variant string "gtk-launch-24810-harald-desktop-gnome-sudoku-0_TIME0"
)
]
注释掉该开关后,不会出现此消息,因此必须直接使用 Exec 命令。
只要其他应用程序运行良好,我就不会再花时间去弄清楚 LXQT 和 Gnome 之间 D-Bus 不匹配的确切原因。
但如果你有时间,当然你可以跑一跑dbus-monitor
,也许你会找到一些解释。
答案2
我会重新安装该程序。99% 的情况下这可以解决这个特定的问题。