同步失败怎么排查 —— 从最简单的检查到深度诊断
第一步:最基础的三件事
同步失败时先按顺序做这三个检查:
1. 网络通不通
- 手机浏览器打开 ankiweb.net,看能不能正常加载
- AnkiWeb 的服务器在国外,某些网络环境(公司代理、校园网、部分运营商移动网络)可能连不上
- 如果用的是移动网络,试试切 WiFi;如果用的是代理/VPN,确认配置正确
2. AnkiWeb 账号密码对不对
- 虽然之前登录过,但偶尔 AnkiWeb 会强制重新登录
- 设置 → 同步 → 重新输入账号密码
- 浏览器打开 ankiweb.net 用同一套账号密码登录确认
3. AnkiWeb 有没有在维护
AnkiWeb 偶尔会短时间不可用(后台维护)。去 Anki Forums 或 Twitter 搜 "AnkiWeb down" 看看是不是服务端问题。
第二步:检查存储配额
AnkiWeb 免费账号约 400MB。超出后同步会被拒绝。
- 浏览器打开 ankiweb.net → 设置 → 存储用量
- 查看已用多少、剩余多少
- 超出的话清理不需要的牌组或媒体文件(在 AnkiDroid 里:活动栏更多菜单 → 检查媒体,能扫出孤立文件)
第三步:处理合并冲突
如果同步按钮变成红色警告色并且点它弹出对话框,说明有合并冲突(手机和 AnkiWeb 数据无法自动合并)。详见专门的合并冲突处理页面。
简单说就是:选保留手机 或 保留云端,然后立即再同步一次。
第四步:强制全同步
如果常规同步一直失败,可以尝试强制全同步:
- 设置 → 同步 → 找"强制全同步"或"单向同步"选项
- 选择一个方向(上传手机数据到云端 或 从云端下载覆盖手机)
- 确认后执行
⚠️ 强制全同步是破坏性操作——被覆盖的一端会丢失所有未同步的改动。选方向前确认你清楚两端各有什么内容。
第五步:应用内修复
在牌组列表的活动栏更多菜单里,依次尝试:
- 检查数据库 → 修复数据库问题
- 检查媒体 → 清理孤立媒体文件
- 导出整个 collection 备份(怕数据丢的话)
- 然后再尝试同步
第六步:卸载重装(万不得已)
如果以上都试过还是不行:
- 先导出 .colpkg 完整备份(手机本地保存)
- 卸载 AnkiDroid(会清掉应用数据)
- 重新安装 AnkiDroid
- 首次启动时选择 从 AnkiWeb 下载(而不是导入之前的备份——因为之前的备份可能就有问题)
- 同步恢复
卸载重装的好处是能清除所有应用内部状态(包括可能损坏的 SQLite 数据库和缓存)。只要 AnkiWeb 上有你的完整数据,重装就不会丢东西。
常见错误码
| 错误提示 | 含义 | 解决方案 |
|---|---|---|
| 网络超时 | AnkiWeb 连不上 | 换网络、开代理、等网络恢复 |
| 合并冲突 | 两端都改了同一张卡 | 手动选方向(见合并冲突处理) |
| 存储空间不足 | 超了 400MB | 清理旧牌组、压缩媒体 |
| 认证失败 | 账号密码不对 | 重新登录 |
| 应用版本过旧 | AnkiWeb 拒绝太老版本的客户端 | 更新 AnkiDroid |
| AnkiWeb 服务故障 | 服务端挂了 | 等恢复(通常几小时内) |
提前预防
- 每天至少同步一次,不要让任何一端积累大量未同步改动
- 重要操作前手动导出 .colpkg 备份
- 不要同时在多台设备上编辑同一张卡片(冲突主要来源)
- 关注 Anki Forums 上的 Announcements,了解 AnkiWeb 维护计划