常见问题

在其他语言查看

以下是常见报告的问题及其状态。

如果您遇到任何错误,第一步是升级到最新版本。

adb 和 USB 问题

scrcpy 通过执行 adb 命令来初始化与设备的连接。如果 adb 失败,则 scrcpy 将无法工作。

这通常不是 scrcpy 的bug,而是您环境中的问题。

adb 未找到

您需要从 PATH 中访问 adb

在 Windows 上,当前目录位于您的 PATH 中,且 adb.exe 包含在版本中,因此应该可以即插即用。

设备未检测到

错误:找不到任何 ADB 设备

请检查您是否正确启用了 adb 调试

您的设备必须能够被 adb 检测到:

adb devices

如果您的设备未检测到,请您可能需要一些 [驱动程序](在 Windows 上)。有一个单独的 Google 设备的 USB 驱动程序

设备未授权

错误:设备未授权:
错误:     -->   (usb)  0123456789abcdef          未授权
错误:A 弹出窗口应在设备上请求授权。

连接时,设备上应打开一个弹出窗口。您必须授权 USB 调试。

如果没有打开,请检查 stackoverflow

连接了多个设备

如果连接了多个设备,您将遇到此错误:

错误:多个 (2) ADB 设备:
错误:     -->   (usb)  0123456789abcdef                设备  Nexus_5
错误:     --> (tcpip)  192.168.1.5:5555                设备  GM1913
错误:通过 -s (--serial),-d (--select-usb) 或 -e (--select-tcpip) 选择设备

在这种情况下,您可以提供您想要镜像的设备标识符:

scrcpy -s 0123456789abcdef

或者请求单个 USB(或 TCP/IP)设备:

scrcpy -d  # USB 设备
scrcpy -e  # TCP/IP 设备

请注意,如果您的设备通过 TCP/IP 连接,您可能会收到此消息:

adb: 错误:多个设备/模拟器
错误:"adb reverse" 返回值为 1
警告:'adb reverse' 失败,回退到 'adb forward'

这是预期的(由于旧版 Android 的 bug,请参见 #5),但在这种情况下,scrcpy 回退到另一种方法,应该可以正常工作。

adb 版本冲突

adb 服务器版本 (41) 与这个客户端 (39) 不匹配;杀死...

当您同时使用几个 adb 版本时,会出现此错误。您必须找到使用不同 adb 版本的程序,并且在每个地方都使用相同的 adb 版本。

您可以在其他程序中覆盖 adb 二进制文件,或者通过设置 ADB 环境变量让 scrcpy 使用特定的 adb 二进制文件:

# 在 bash 中
export ADB=/path/to/your/adb
scrcpy
:: 在 cmd 中
set ADB=C:\path\to\your\adb.exe
scrcpy
# 在 PowerShell 中
$env:ADB = 'C:\path\to\your\adb.exe'
scrcpy

设备断开

如果 scrcpy 以“设备已断开”的警告停止运行,则 adb 连接已关闭。

尝试使用另一条 USB 线或将其插入另一个 USB 端口。请参见 #281#283

Windows 上的 OTG 问题

在 Windows 上,如果 scrcpy --otg(或 --keyboard=aoa/--mouse=aoa)导致:

错误:找不到任何 USB 设备

(或者只有无关的 USB 设备被检测到),可能是驱动程序问题。

请阅读 #3654,特别是 这条评论下一条评论

控制问题

鼠标和键盘不起作用

在某些设备上,您可能需要启用一项选项以允许 [模拟输入]。在开发者选项中,启用:

USB 调试(安全设置)
允许授予权限并通过 USB 调试模拟输入

设置此选项后,重启设备是必要的。

特殊字符无法输入

默认的文本注入方法是 仅限于 ASCII 字符。一个技巧允许您注入一些 带重音的字符,但仅此而已。请参见 #37

为避免此问题,将键盘模式更改为模拟物理键盘

客户端问题

与 Wayland 的问题

默认情况下,SDL 在 Linux 上使用 x11。可以通过 SDL_VIDEODRIVER 环境变量更改 视频驱动程序

export SDL_VIDEODRIVER=wayland
scrcpy

在某些发行版中(至少在 Fedora 上),必须手动安装 libdecor 包。

请参见问题 #2554#2559

KWin 组件崩溃

在 Plasma Desktop 中,当 scrcpy 正在运行时,组件会被禁用。

作为临时解决方案,禁用“阻止合成”

报告崩溃

异常

如果您在处理与MediaCodec相关的异常时遇到问题,请参考以下解决方法:

ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
        at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)

请尝试使用其他编码器

翻译

其他语言的FAQ翻译可在仓库中找到。

只有这个FAQ文件可以保证是最新的。