常见问题解答
这里列出了常见问题及其当前状态。
如果遇到任何错误,第一步请升级到最新版本。
adb 和 USB 问题
Section titled “adb 和 USB 问题”scrcpy execute adb commands to initialize the connection with the device. If
adb fails, then scrcpy will not work.
这通常不是 scrcpy 的问题,而是你的环境配置出现了问题。
找不到 adb
Section titled “找不到 adb”需要确保 adb 能通过你的 PATH 访问。
在 Windows 上,当前目录会加入到 PATH,且发布包已包含 adb.exe,因此应可直接使用。
设备未检测到
Section titled “设备未检测到”ERROR: Could not find any ADB device
请确认你已正确启用adb 调试。
你的设备必须被 adb 检测到:
adb devices如果设备未被检测到,你可能需要安装一些[驱动](在 Windows 上)。Google 设备还需要单独的USB 驱动。
ERROR: Device is unauthorized:ERROR: --> (usb) 0123456789abcdef unauthorizedERROR: A popup should open on the device to request authorization.
连接时,设备上应弹出一个对话框。你必须授权 USB 调试。
如果没有弹窗,请参考 Stack Overflow。
连接了多个设备
Section titled “连接了多个设备”如果同时连接了多个设备,你会遇到以下错误:
ERROR: Multiple (2) ADB devices:ERROR: --> (usb) 0123456789abcdef device Nexus_5ERROR: --> (tcpip) 192.168.1.5:5555 device GM1913ERROR: Select a device via -s (--serial), -d (--select-usb) or -e (--select-tcpip)
这种情况下,你可以提供想要镜像的设备标识:
scrcpy -s 0123456789abcdef或者选择单个 USB(或 TCP/IP)设备:
scrcpy -d # USB devicescrcpy -e # TCP/IP device注意,如果你的设备通过 TCP/IP 连接,可能会出现如下信息:
adb: error: more than one device/emulatorERROR: "adb reverse" returned with value 1WARN: 'adb reverse' failed, fallback to 'adb forward'
这是预期行为(源于旧版 Android 的一个 bug,见 #5)。在这种情况下,scrcpy 会回退到另一种方式,通常可正常工作。
adb 版本冲突
Section titled “adb 版本冲突”adb server version (41) doesn't match this client (39); killing...
该错误通常是同时使用了多个不同版本的 adb 导致。你需要找出使用其他 adb 版本的程序,并确保全局使用相同的 adb 版本。
你可以替换其他程序中的 adb 可执行文件,或者通过设置 ADB 环境变量让 scrcpy 使用指定的 adb:
# in bashexport ADB=/path/to/your/adbscrcpy:: in cmdset ADB=C:\path\to\your\adb.exescrcpy# in PowerShell$env:ADB = 'C:\path\to\your\adb.exe'scrcpy设备断开连接
Section titled “设备断开连接”如果 scrcpy 停止并提示“Device disconnected”,则表示 adb 连接已关闭。
请尝试更换 USB 数据线或更换 USB 接口。参见 #281 和 #283。
Windows 上的 OTG 问题
Section titled “Windows 上的 OTG 问题”在 Windows 上,如果 scrcpy --otg(或 --keyboard=aoa/--mouse=aoa)显示:
ERROR: Could not find any USB device
(或者只检测到无关的 USB 设备),可能是驱动问题。
鼠标和键盘无法操作
Section titled “鼠标和键盘无法操作”在某些设备上,你可能需要启用允许[模拟输入]的选项。在开发者选项中,启用:
USB 调试(安全设置)
允许通过 USB 调试授予权限并模拟输入
启用该选项后,需要重启设备。
特殊字符无法输入
Section titled “特殊字符无法输入”默认的文本注入方式仅支持 ASCII 字符。有一个技巧可以注入部分重音字符,但也仅限于此。参见 #37。
为避免该问题,请将键盘模式切换为模拟物理键盘。
Wayland 下的问题
Section titled “Wayland 下的问题”在 Linux 上,SDL 默认使用 x11。可以通过环境变量 SDL_VIDEODRIVER 切换[视频驱动]:
export SDL_VIDEODRIVER=waylandscrcpy在某些发行版(至少 Fedora)上,需要手动安装 libdecor 包。
KWin 合成器崩溃
Section titled “KWin 合成器崩溃”在 Plasma 桌面上,scrcpy 运行期间合成器会被禁用。
可作为临时解决方案,禁用“Block compositing”。
如果遇到与 MediaCodec 相关的异常:
ERROR: Exception on thread Thread[main,5,main]java.lang.IllegalStateException at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)请尝试使用另一种编码器。
本 FAQ 的其他语言版本可在wiki中获取。
只有此 FAQ 文件保证是最新的。