Skip to content
kmizmal edited this page Jan 21, 2025 · 1 revision

只有原版的 FAQ.md是保证最新的。

本文根据 https://github.com/Genymobile/scrcpy/blob/master/FAQ.md 进行翻译。

常见问题

用另一种语言阅读

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

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

adb 和 USB 问题

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

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

adb not found

您需要从您的 PATH 访问 adb

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

Device not detected

ERROR: Could not find any ADB device

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

您的设备必须通过 adb 检测:

adb devices

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

[enable-adb]:https://developer.android.com/studio/command-line/adb.html#Enabling [驱动程序]:https://developer.android.com/studio/run/oem-usb.html [google-usb-driver]:https://developer.android.com/studio/run/win-usb

Device unauthorized

ERROR: Device is unauthorized:
ERROR:     -->   (usb)  0123456789abcdef          unauthorized
ERROR: A popup should open on the device to request authorization.

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

如果打不开,请检查[stackoverflow] device-unauthorized

Several devices connected

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

ERROR: Multiple (2) ADB devices:
ERROR:     -->   (usb)  0123456789abcdef                device  Nexus_5
ERROR:     --> (tcpip)  192.168.1.5:5555                device  GM1913
ERROR: Select a device via -s (--serial), -d (--select-usb) or -e (--select-tcpip)

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

scrcpy -s 0123456789abcdef

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

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

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

adb: error: more than one device/emulator
ERROR: "adb reverse" returned with value 1
WARN: 'adb reverse' failed, fallback to 'adb forward'

这是预期的(由于旧 Android 版本上的错误,请参阅 #5,但在这种情况下,scrcpy 会回退到另一种方法,这应该可以工作。

Conflicts between adb versions

adb server version (41) doesn't match this client (39); killing...

当您同时使用多个 adb 版本时,会发生此错误。您必须使用不同的 adb 版本找到该程序,并在所有地方使用相同的 adb 版本。

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

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

Device disconnected

如果 scrcpy 自行停止并显示“设备已断开连接”警告,则 adb 连接已关闭。

尝试使用另一根 USB 电缆或将其插入另一个 USB 端口。请参阅 #281#283

Windows 上的 OTG 问题

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

ERROR: Could not find any USB device

(或者如果只检测到不相关的 USB 设备),则可能存在驱动程序问题。

请阅读 #3654,特别是 此评论下一个

控制问题

鼠标和键盘不起作用

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

在开发者选项中,启用:

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

设置此选项后,可能需要重启设备。

[模拟输入]:https://github.com/Genymobile/scrcpy/issues/70#issuecomment-373286323

特殊字符不起作用

默认的文本注入方法是 仅限于 ASCII 字符

一个技巧允许注入一些 重音字符

但仅此而已。请参阅 #37

为了避免这个问题,更改键盘模式以模拟物理键盘

客户端问题

Wayland 问题

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

[视频驱动程序]:https://wiki.libsdl.org/FAQUsingSDL#how_do_i_choose_a_specific_video_driver

export SDL_VIDEODRIVER=wayland
scrcpy

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

请参阅问题 [#2554] 和 [#2559]。

[#2554]:https://github.com/Genymobile/scrcpy/issues/2554 [#2559]:https://github.com/Genymobile/scrcpy/issues/2559

KWin 合成器崩溃

在 Plasma Desktop 上,scrcpy 运行时合成器被禁用。

解决方法是[禁用“块合成”][kwin]。

[kwin]:https://github.com/Genymobile/scrcpy/issues/114#issuecomment-378778613

崩溃

异常

如果您收到与 MediaCodec 相关的任何异常:

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

然后尝试使用另一个 编码器

翻译

此常见问题解答的其他语言翻译可在 wiki 中找到。

[wiki]:https://github.com/Genymobile/scrcpy/wiki

只有此常见问题解答文件保证是最新的。