# 常见问题 按「你会先遇到什么」排序。每条都写了成因,因为知道原因通常比知道操作更有用。 ## 解析失败,或者解析成功但取不到直链 网盘接口不是公开协议,是抓包分析出来的。官方一改,旧接口就失效,这是这类工具的常态, **以实际运行结果为准**;项目会跟着修,但修好之前它就是不工作。 排除掉接口本身的问题后,剩下的常见原因是没登录:未登录只能看到文件名,拿不到可用的下载地址。 先确认对应的网盘已经在「网盘」页登录过。 如果登录了、别的分享又能解析,只有这一条不行 —— 那多半是这条分享本身有额外限制 (例如需要提取码、或者分享已被取消)。 ## 下载速度很慢,或者一直是 0 先看是不是网盘给的直链本身有单连接限速 —— 很多网盘对免费用户就是这么限的, 分片并发能缓解,但突破不了服务端的策略。 另一个原因是风控。短时间内发起大量连接,或者频繁解析,都可能被临时限速。 这时候把线程数调小一点反而更快。 还有一类是链接过期:网盘直链通常带签名和有效期,放置太久再点开始就会失败。 重新解析一次拿新直链即可。 ## 下载中断了,要重头再来吗 不用。分片进度是落盘的,重新开始同一个任务会从已经写完的部分接着下。 应用被系统杀掉、手机重启,任务也还在「下载」页里,接着点继续就行。 ## 换了手机,要重新登录所有网盘吗 不必逐个重登。在原设备上「设置 → 导出网盘认证」生成一个加密文件, 在新设备的同一位置导入即可。 导出时设的口令请记好 —— 文件用它派生的密钥加密,**没有找回途径**。 ## 改了锁屏密码 / 指纹之后,提示登录失效 这是 Android Keystore 的行为,不是应用的问题:系统认为设备的安全凭证变了, 之前用旧凭证保护过的密钥会被永久作废,取不出来。 重新登录一次即可,之后不会再受影响。(应用在生成密钥时特意没有绑定「每次使用都要验证身份」, 就是为了减少这类情况,但系统层面的变更挡不住。) ## 检查更新说「已是最新」,但其实有更新的版本 如果你装的是预发布(prerelease)版本,旧版本确实会出现这个现象:GitHub 的 `/releases/latest` 接口按设计只返回「已正式发布的最新版」,预发布的不在其中。 现在的检查更新改成了读发布列表、再按**版本号**(而不是发布时间)挑最大的那个, 已经不会出现这个问题。如果你在旧版本上遇到,更新到 2.6.19 之后就好了。 ## 更新包下载很慢或者失败 更新是从 GitHub 下载的,国内网络直连不稳定。应用内置了一个加速镜像通道, 直连失败时会走镜像。镜像只是一个转发,不改变文件本身,装之前仍然可以核对大小。 ## 系统不让安装,提示「未知来源应用」 应用没有上架任何应用商店,所以系统会拦一次。在提示里选择允许本次安装即可。 安装完成后这个授权不必保留。 ## 磁力 / BT 链接下不动 内置的下载引擎不做 BT。这类任务需要 Gopeed 内核:到「下载引擎」页导入内核后, 引擎会把这类链接交给它。内核**不随安装包分发**,需要你手动导入一次。 导入方式与校验规则写在[下载引擎](ENGINES.md)里。 ## 下载中途崩溃,日志里有 OutOfMemoryError 先升级到 **2.7.2 或更高**。 2.7.0–2.7.1 的引擎每开一个连接就固定分配 1 MB 读缓冲,而线程数上限是 256 —— `256 × 1 MB = 256 MB`,正好等于系统给应用的整个堆。堆被「活」缓冲占满后, 连 64 字节都分配不出来,就会崩。 这一版把缓冲改成按并发摊薄(总量封顶 32 MB):256 连接时约 128 KB/连接。 **低线程数(默认 16)的行为完全不变**,所以不需要调整任何设置; 线程数调得高的用户升级后也不会再崩。 崩溃栈可能指向 Okio 的 Watchdog 线程(`SocketAsyncTimeout.timedOut`), 那只是受害者——它只是想在超时时关掉连接。看到 `target footprint 268435456` (256MiB)字样就可以确认是这个问题。 ## 加密的 HLS 流下载失败 先确认当前用的是默认引擎(TurboDL)。内置兼容引擎里的 HLS 实现是早期版本, 不支持 AES 加密和字节范围请求,遇到加密流会失败。 ## 插件页说「JS 引擎不可用」 先升级到 **2.7.1 或更高**。2.7.0 的自检程序本身写错了:它用「要一个字符串」的方式去读 JavaScript 的数字,而引擎的类型转换表里没有这条路径,必然报错 —— 于是**引擎明明是好的, 却被报成不可用**,装好的插件也就一直停在「未运行」。 2.7.1 起自检改用与引擎生产代码一致的取值方式,并且失败时会写明真实原因。 升级后进插件页点一次「重新检测」即可。 如果升级后仍然不可用,那就是真的有问题了:把「设置 → 导出日志」里的内容发到 [Issues](https://github.com/jiayuxuan123/YunGet/issues),自检结论里会带上具体原因。 ## 下载到自定义目录失败 Android 11 及以上,往公共 `Download` 以外的目录写文件需要「所有文件访问」权限。 到系统设置里给应用开这个权限即可;不想开就继续用默认目录。 ## 日志在哪里,反馈问题时怎么给 「设置 → 导出日志」会把应用与设备信息、关键诊断日志、以及当前运行的日志一起导出, 可以选择分享给其他应用或保存到下载目录。 **导出前请自己看一眼。** 日志里可能包含下载链接(网盘直链带签名,等于一把临时钥匙) 和文件名。虽然代码里对 Cookie、token 这类字段做了脱敏,但并不是每一行都过脱敏, 带签名的完整链接仍可能出现在里面。 上报问题时,附上这些信息能省掉好几轮来回: - 应用版本(「关于」页可见) - 手机型号与 Android 版本 - 出问题的网盘 - 复现步骤:点了什么、期望什么、实际发生了什么 - 日志文件 ## 报告问题去哪里 仓库的 [Issues](https://github.com/jiayuxuan123/YunGet/issues)。没有聊天群, 所有反馈都在那里 —— 可搜索、可追溯,也不会因为某个群散掉而丢失。