This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
只有原版的 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 设备),则可能存在驱动程序问题。
控制问题
鼠标和键盘不起作用
在某些设备上,您可能需要启用一个选项以允许 [模拟输入]。
在开发者选项中,启用:
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]: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
只有此常见问题解答文件保证是最新的。