Alist 开源桌面版—Alist Helper For Linux ,ubuntu 编译启动”没反应问题解决,完美运行教主级教程(附deb包)(rclone 挂载路径 Bug 已在2025.1.3 日解决)
Alist Helper 是一款 alist 网盘库程序图形化启动和配置助手,对 alist 命令式操作厌烦的人是个不错的工具。
alist 官网也有 Alist Desktop 桌面版图形配置界面,根据大家的喜好自行选用。

对比 Alist Desktop,Alist Helper 优势还是明显,关键它免费!!!

官网:https://github.com/Xmarmalade/alisthelper

目前官网没有为 Linux 编译二进制包,需要自己编译。
1.下载源码编译
gitclone https://github.com/Xmarmalade/alisthelper.git
2.编译
cdalisthelperflutter pub getdart run build_runner buildflutter run--release
成功后在build/linux/x64/release/bundle目录下生成程序

复制bundle文件内所有文件到自定义程序目录,比如~/soft/alist中,并重命名
cp-rbuild/linux/x64/release/bundle/ ~/soft/alist
3.添加alist.desktop桌面快捷方式
nano~/.local/share/applications/alist-helper.desktop
复制粘贴以下内容:
[Desktop Entry]Name=Alist Helper#修改成自己的程序路径Exec=~/soft/alist/alisthelper#修改成自己的图标路径Icon=~/soft/alist/data/flutter_assets/assets/alisthelper.pngType=ApplicationTerminal=falseCategories=NetWork;
4.启动 alist 没反应,日志显示 tray_manager setToolTip 故障问题
点击“启动”按钮没有反应

log 日志输出如下:
flutter: Initializing tray failed: MissingPluginException(No implementation found for method setToolTip on channel tray_manager)``[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: MissingPluginException(No implementation found for method setToolTip on channel tray_manager)``#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:332:7)``<asynchronous suspension>``#1 TrayManager.setToolTip (package:tray_manager/src/tray_manager.dart:168:5)``<asynchronous suspension>``#2 changeTray (package:alisthelper/utils/native/tray_helper.dart:48:5)``<asynchronous suspension>``#3 AlistNotifier.startAlist (package:alisthelper/provider/alist_provider.dart:82:5)``<asynchronous suspension>
经排查后,发现是 linux 系统下 tray_manager 类中 setToolTip 方法出错,tray_manager 官网(https://github.com/leanflutter/tray_manager/blob/main/README-ZH.md)也作了说明,原来是 linux 下没有 setToolTip 方法,用来设置此托盘图标的悬停文本。没有它也不影响正常使用,禁用掉就行了。期待tray_manager官网后续版本解决这个问题!

(写这篇文章时,源码作者已经将我提交的 bug 修补代码合并到 master 中,此 bug 已被修复!在此记录说明一下)
修复此问题:
用gedit打开alisthelper/lib/utils/native/tray_helper.dart文件,定位到48行,找到wait tm.trayManager.setToolTip(t.tray.tooltip);语句,增加一个条件判断:
if(!Platform.isLinux){awaittm.trayManager.setToolTip(t.tray.tooltip);}
同理,第56行也改成这样,最终效果如下:
重新编译运行,问题解决。
**PS:**这个问题在我提交 issue 和 bug fix 代码到 github 5小时内得到了解决,原作者将我的修补代码合并到了master 中,现在直接拉取源码编译运行就行,此 bug 已被解决。


可以看到,原来出错代码位置处,已经替换成我修改后的代码了!
附件deb下载:
github:https://github.com/mecloo/alisthelper/releases/download/alist/alisthelper_0.2.0_amd64.deb
蓝奏云:https://wwoz.lanzoul.com/iRikl2jfznid 密码:5o96
修复备注:
2025年1月3 修复 rclone 挂载路径不能输入的问题,修复linux下挂载失败的问题,同步更新了rpm、deb和appimage安装包。该bug已经提交到原作者源码库,现已修复。

