我正在捕捉用 qt5 编写的应用程序并使用 libappindicator 为系统托盘图标提供一些功能。
创建 snap 并运行我的应用程序后,终端窗口中出现以下错误消息:
libappindicator-WARNING **: Unable to connect to the Notification
Watcher: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: An
AppArmor policy prevents this sender from sending this message to
this recipient; type="method_call", sender=":1.153" (uid=1000
pid=19705 comm="deskie-snap ")
interface="org.kde.StatusNotifierWatcher"
member="RegisterStatusNotifierItem" error name="(unset)"
requested_reply="0" destination=":1.53" (uid=1000 pid=3134
comm="/usr/lib/x86_64-linux-gnu/indicator-application/in")
我还使用了 unity7 接口,该接口可以处理 libappindicator 与系统总线的连接。
我的 snapcraft.yaml 文件如下所示:
请帮助。
答案1
请检查一下邮件列表帖子。
您需要包含以下内容的 snapd这次提交包含在 snapd 2.18 中,如果您仍使用 snapd 2.17 或更低版本,则可以使用以下方法解决问题:
wget -qO- https://github.com/jdstrand/snapd/commit/95768199111.patch | \
sudo patch \
/var/lib/snapd/apparmor/profiles/snap.<your-snap>.<your-command>
sudo apparmor_parser -r \
/var/lib/snapd/apparmor/profiles/snap.<your-snap>.<your-command>
您可能还需要包含indicator-gtk2
(或 3)远程部分来处理前缀$SNAP
,但如果您以 snap ind 思维构建事物,这可能是可选的。