如何修复 Xubuntu 14.04 LTS 64 上不起作用的 Dropbox 图标?

如何修复 Xubuntu 14.04 LTS 64 上不起作用的 Dropbox 图标?

几个小时前,Xubuntu 14.04 中的 dropbox 图标停止工作。图标是黑色的,上面有一个红色的斜线零。我无法点击它来调出 dropbox 菜单。我相信在发生这种情况之前有一个更新。我重新安装了 dropbox,然后清除了它。我甚至删除了所有相关文件和隐藏文件夹,然后再次安装了它。但图标仍然不起作用。尝试停止并启动服务......还是没有用。

答案1

我的 Xubuntu 15.10 上刚刚出现这个错误,图标损坏,无法打开菜单。我认为这个错误与 Dropbox 开始使用“指示区域”而不是“通知区域”作为托盘图标有关,而 sudo-fix 恰好起作用,因为某些环境变量未在 sudo 会话中使用。

至少对于我来说,可以通过运行以下命令解决此问题:

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start

这似乎将图标移回“通知区域”,从而修复了图标和菜单。这样守护进程就可以以普通用户身份运行,而不是以 root 身份运行。

编辑:如果您根据此修复程序为 Dropbox 创建自己的启动脚本,请记住使用“ dropbox autostart n”命令禁用默认启动脚本(感谢 StockBreak 提供这个脚本,为我今天早上节省了一些时间)。

编辑 2:...出于某种原因,我仍然必须从 Dropbox GUI 中删除自动启动设置(单击图标 >> 首选项 >> 在系统启动时启动 Dropbox)。希望在此之后它保持关闭状态。

编辑:要在每次会话启动时运行的脚本中实现此修复,请尝试以下解决方案:https://askubuntu.com/a/795864/496493

答案2

A新的解决方法,由文件 C。, 是“dbus-launch dropbox启动-i”

据用户报告,以下修改至少可以在 Linux 发行版 Fedora、Gentoo、Kubuntu、Linux Mint、openSUSE、Slackware、Ubuntu、Xubuntu... 和桌面环境 Cinnamon、KDE ​​4、KDE ​​5、Mate、Unity、Xfce... 上运行。

这个新的dbus 启动与之前的方法相比,这种方法似乎运行速度更快、更可靠,适用范围也更广。DBUS_SESSION_BUS_ADDRESS解决方法。

作为命令行:

dropbox stop && dbus-launch dropbox start

或者作为 shell 脚本文件:

#!/bin/bash

dropbox stop && dbus-launch dropbox start

答案3

感谢 kk78 的解决方案,我完成了这个完整的解决方法(另请参阅我的其他帖子):

已复制*我的桌面条目:

cp ~/.config/autostart/dropbox.desktop ~/.config/autostart/start_dropbox.desktop

将条目改成如下形式(请注意这个env词):

[Desktop Entry]
Name=Dropbox
GenericName=File Synchronizer
Comment=Sync your files across computers and to the web
#Exec=dropbox start -i
Exec=env DBUS_SESSION_BUS_ADDRESS="" dropbox start -i
Terminal=false
Type=Application
Icon=dropbox
Categories=Network;FileTransfer;
StartupNotify=false

并禁用 Dropbox 的自动启动:

dropbox autostart n

* 您不能直接编辑它,因为每次登录时 Dropbox 都会替换该文件。

答案4

~/.dropbox-dist/dropboxd按如下方式修改了脚本,然后重新启动,图标就恢复了。由于此文件会被更新覆盖,所以我认为如果他们在下次更新时修复了这个问题,我就不必撤消任何操作了。

#!/bin/sh
export DBUS_SESSION_BUS_ADDRESS=""
PAR=$(dirname "$(readlink -f "$0")")
exec "$PAR/dropbox-lnx.x86-3.14.7/dropboxd" "$@"

更新:当我在笔记本电脑上尝试此操作时,它最初不起作用。我意识到我遇到了与“复制”相同的问题,其中 XFCE4 会话保存在执行官方启动文件之前启动了 dropbox。我修改了我的 ~/.profile 文件以删除任何 *.state 和 *session* 文件~./cache/sessions

rm -f /home/jhm/.cache/sessions/*.state
rm -f /home/jhm/.cache/sessions/*session*

更新 #2:现在使用版本 3.18.1 问题仍然存在。我知道是因为,正如我所预料的,~/.dropbox-dist/dropboxd每次更新都会覆盖脚本,导致问题每次都会再次出现。上述修复在 Xubuntu 14.04 启动时可靠地工作,前提是会话恢复不会直接启动二进制文件:

/home/<user>/.dropbox-dist/dropbox-lnx.x86-3.18.1/dropbox

使用“系统/会话和启动”,在“会话”选项卡下,我可以看到二进制文件是可见的,如果我不删除*session 和*state 文件,它将重新启动。

作为实验,我尝试在会话跟踪开始之前使用 Upstart 启动 Dropbox。首先,我创建了文件夹,然后向其中添加了/home/jhm/.init一个名为的文件,其中包含:dropbox.conf

description "Dropbox"
start on desktop-start
expect daemon
exec /usr/bin/dropbox start

我在我的戴尔笔记本电脑 Xubuntu 14.04 上使用此方法,该程序现在对会话跟踪隐藏,因此我不需要删除文件。

由于dbus-launch创建了一个新的私有 DBUS 会话总线,DropBox 永远不会找到 appindicator 服务,因为它将是该总线上的唯一进程(DBUS 除外),所以这与export DBUS_SESSION_BUS_ADDRESS=""两种解决方案都导致 DropBox 回退到系统托盘 API 大致相同。这在 XFCE 面板项目选项卡中称为“通知区域”。确保它没有从面板中删除。

使用d-feetdbus-monitor,我发现问题是 DropBox 无法在不存在的 '/MenuBar' DBUS 路径上实现 'Menu' 接口。DBUS 爱好者可以org.kde.StatusNotifierWatcher使用进行探索d-feet以了解更多信息。由于 dropbox 二进制文件负责支持这些接口,因此除了等待下一次更新外,无需做任何事情。顺便说一句,所有需要的 QT5.5 库都包含在程序中。无需下载开发包。

我还发现只有 GUI 对话框似乎可以可靠地阻止启动文件重新安装。一旦取消选中“系统启动时启动 DropBox”,它就会保持这种状态。

相关内容