Shizuku 连接失败 java.lang.RuntimeException: connect fail 解决
错误现象
典型报错信息:
- App Ops 提示 "java.lang.RuntimeException: connect fail"
- Shizuku 应用显示"无法连接"或"服务已停止"
- App Ops 无法修改权限,提示工作模式未激活
常见原因与解决
原因一:ADB 连接中断(最常见)
手机重启、数据线松动、USB 调试授权过期都会导致 ADB 连接中断。
检查:
adb devices
- 如果显示
unauthorized:手机上重新点"允许 USB 调试" - 如果显示
no devices/emulators found:检查数据线,或重启无线调试 - 如果显示设备序列号 +
device:连接正常,问题在其他地方
原因二:Root 权限请求被拦截(Root 模式下)
如果 Shizuku 通过 Root 激活,SuperSU/Magisk 可能拦截了 App Ops 或 Shizuku 的 Root 授权请求。
解决:
- 打开 SuperSU/Magisk 管理器
- 找到 App Ops 和 Shizuku,确认它们的 Root 授权是"允许"
- 如果有过"拒绝"记录,清除拒绝记录后重试
- App Ops 设置里打开"Root 兼容模式"(某些设备需要)
原因三:Shizuku 服务文件不存在或路径不对
如果 Shizuku 安装不完整或版本过旧,服务文件可能不存在。
检查:
adb shell ls /data/user_de/0/moe.shizuku.privileged.api/
如果目录不存在或为空:
- 卸载 Shizuku
- 重新从官方渠道安装最新版 Shizuku
- 打开 Shizuku,重新激活(通过 ADB 或 Root)
原因四:无线调试失效
Android 11+ 无线调试很方便但不稳定:
- Wi-Fi 变化后无线调试的 IP 和端口可能改变
- 手机重启后无线调试可能需要重新配对
解决:
- 优先用 USB 调试方式(最稳定)
- 无线调试失效时重新配对:
adb pair <IP>:<配对端口>
adb connect <IP>:<连接端口>
- 确认手机和电脑在同一 Wi-Fi
原因五:开发者选项被关闭
某些情况下(如手机重启、省电模式)开发者选项可能被自动关闭。
检查:进入"设置 → 开发者选项",确认 USB 调试/无线调试开关是开着的。
原因六:ADB 端口被其他程序占用
电脑上有其他程序(如 Android Studio、其他调试工具)占用了 ADB 端口。
解决:
adb kill-server
adb start-server
adb devices
原因七:厂商 ROM 的特殊限制
部分厂商 ROM(MIUI、ColorOS、EMUI、OneUI)对 ADB 调试有额外限制:
- 小米/红米:开发者选项里有"USB 调试(安全设置)",某些功能需要单独开启
- 华为/荣耀:开发者选项默认隐藏,开启后某些调试功能需要额外授权
- 三星:部分系统版本需要在开发者选项里开启"Wireless debugging"后同时开启"ADB over network"
快速恢复流程
遇到 connect fail 时按以下顺序操作:
1. 打开 Shizuku 应用 → 看它的状态提示
2. 电脑执行 adb devices → 确认连接正常
3. 如果连接正常但 Shizuku 不工作 → 重新执行 Shizuku 启动命令
4. 手机弹出 Shizuku 授权 → 点允许
5. 回到 App Ops → 刷新工作模式状态
6. 还是不行 → 卸载重装 Shizuku + App Ops,从头来过
终极手段
如果以上全部试过还是 connect fail:
- 检查 Shizuku 和 App Ops 版本是否兼容:App Ops 9.x 需要 Shizuku 的较新版本
- 检查 Android 系统版本:过旧系统(Android 5.x/6.x)需要对应旧版本的 Shizuku + App Ops
- 尝试换工作模式:Shizuku 模式不行试试 DPM 托管管理员模式
- 换电脑/换 USB 线:排除电脑端或数据线问题
- 重启手机 + 重启电脑 + 重启 ADB:三重启试试