|
| 1 | +只有原版的[FAQ](FAQ.md)会保持更新。 |
| 2 | +本文根据[d6aaa5]翻译。 |
| 3 | + |
| 4 | +[d6aaa5]:https://github.com/Genymobile/scrcpy/blob/d6aaa5bf9aa3710660c683b6e3e0ed971ee44af5/FAQ.md |
| 5 | + |
| 6 | +# 常见问题 |
| 7 | + |
| 8 | +这里是一些常见的问题以及他们的状态。 |
| 9 | + |
| 10 | +## `adb` 相关问题 |
| 11 | + |
| 12 | +`scrcpy` 执行 `adb` 命令来初始化和设备之间的连接。如果`adb` 执行失败了, scrcpy 就无法工作。 |
| 13 | + |
| 14 | +在这种情况中,将会输出这个错误: |
| 15 | + |
| 16 | +> ERROR: "adb push" returned with value 1 |
| 17 | +
|
| 18 | +这通常不是 _scrcpy_ 的bug,而是你的环境的问题。 |
| 19 | + |
| 20 | +要找出原因,请执行以下操作: |
| 21 | + |
| 22 | +```bash |
| 23 | +adb devices |
| 24 | +``` |
| 25 | + |
| 26 | +### 找不到`adb` |
| 27 | + |
| 28 | + |
| 29 | +你的`PATH`中需要能访问到`adb`。 |
| 30 | + |
| 31 | +在Windows上,当前目录会包含在`PATH`中,并且`adb.exe`也包含在发行版中,因此它应该是开箱即用(直接解压就可以)的。 |
| 32 | + |
| 33 | + |
| 34 | +### 设备未授权 |
| 35 | + |
| 36 | +参见这里 [stackoverflow][device-unauthorized]. |
| 37 | + |
| 38 | +[device-unauthorized]: https://stackoverflow.com/questions/23081263/adb-android-device-unauthorized |
| 39 | + |
| 40 | + |
| 41 | +### 未检测到设备 |
| 42 | + |
| 43 | +> adb: error: failed to get feature set: no devices/emulators found |
| 44 | +
|
| 45 | +确认已经正确启用 [adb debugging][enable-adb]. |
| 46 | + |
| 47 | +如果你的设备没有被检测到,你可能需要一些[驱动][drivers] (在 Windows上). |
| 48 | + |
| 49 | +[enable-adb]: https://developer.android.com/studio/command-line/adb.html#Enabling |
| 50 | +[drivers]: https://developer.android.com/studio/run/oem-usb.html |
| 51 | + |
| 52 | + |
| 53 | +### 已连接多个设备 |
| 54 | + |
| 55 | +如果连接了多个设备,您将遇到以下错误: |
| 56 | + |
| 57 | +> adb: error: failed to get feature set: more than one device/emulator |
| 58 | +
|
| 59 | +必须提供要镜像的设备的标识符: |
| 60 | + |
| 61 | +```bash |
| 62 | +scrcpy -s 01234567890abcdef |
| 63 | +``` |
| 64 | + |
| 65 | +注意,如果你的设备是通过 TCP/IP 连接的, 你将会收到以下消息: |
| 66 | + |
| 67 | +> adb: error: more than one device/emulator |
| 68 | +> ERROR: "adb reverse" returned with value 1 |
| 69 | +> WARN: 'adb reverse' failed, fallback to 'adb forward' |
| 70 | +
|
| 71 | +这是意料之中的 (由于旧版安卓的一个bug, 请参见 [#5]),但是在这种情况下,scrcpy会退回到另一种方法,这种方法应该可以起作用。 |
| 72 | + |
| 73 | +[#5]: https://github.com/Genymobile/scrcpy/issues/5 |
| 74 | + |
| 75 | + |
| 76 | +### adb版本之间冲突 |
| 77 | + |
| 78 | +> adb server version (41) doesn't match this client (39); killing... |
| 79 | +
|
| 80 | +同时使用多个版本的`adb`时会发生此错误。你必须查找使用不同`adb`版本的程序,并在所有地方使用相同版本的`adb`。 |
| 81 | + |
| 82 | +你可以覆盖另一个程序中的`adb`二进制文件,或者通过设置`ADB`环境变量来让 _scrcpy_ 使用特定的`adb`二进制文件。 |
| 83 | + |
| 84 | +```bash |
| 85 | +set ADB=/path/to/your/adb |
| 86 | +scrcpy |
| 87 | +``` |
| 88 | + |
| 89 | + |
| 90 | +### 设备断开连接 |
| 91 | + |
| 92 | +如果 _scrcpy_ 在警告“设备连接断开”的情况下自动中止,那就意味着`adb`连接已经断开了。 |
| 93 | +请尝试使用另一条USB线或者电脑上的另一个USB接口。 |
| 94 | +请参看 [#281] 和 [#283]。 |
| 95 | + |
| 96 | +[#281]: https://github.com/Genymobile/scrcpy/issues/281 |
| 97 | +[#283]: https://github.com/Genymobile/scrcpy/issues/283 |
| 98 | + |
| 99 | +## 控制相关问题 |
| 100 | + |
| 101 | +### 鼠标和键盘不起作用 |
| 102 | + |
| 103 | + |
| 104 | +在某些设备上,您可能需要启用一个选项以允许 [模拟输入][simulating input]。 |
| 105 | + |
| 106 | +在开发者选项中,打开: |
| 107 | + |
| 108 | +> **USB调试 (安全设置)** |
| 109 | +> _允许通过USB调试修改权限或模拟点击_ |
| 110 | +
|
| 111 | +[simulating input]: https://github.com/Genymobile/scrcpy/issues/70#issuecomment-373286323 |
| 112 | + |
| 113 | + |
| 114 | +### 特殊字符不起作用 |
| 115 | + |
| 116 | +可输入的文本[被限制为ASCII字符][text-input]。也可以用一些小技巧输入一些[带重音符号的字符][accented-characters],但是仅此而已。参见[#37]。 |
| 117 | + |
| 118 | + |
| 119 | +[text-input]: https://github.com/Genymobile/scrcpy/issues?q=is%3Aopen+is%3Aissue+label%3Aunicode |
| 120 | +[accented-characters]: https://blog.rom1v.com/2018/03/introducing-scrcpy/#handle-accented-characters |
| 121 | +[#37]: https://github.com/Genymobile/scrcpy/issues/37 |
| 122 | + |
| 123 | + |
| 124 | +## 客户端相关问题 |
| 125 | + |
| 126 | +### 效果很差 |
| 127 | + |
| 128 | +如果你的客户端窗口分辨率比你的设备屏幕小,则可能出现效果差的问题,尤其是在文本上(参见 [#40])。 |
| 129 | + |
| 130 | +[#40]: https://github.com/Genymobile/scrcpy/issues/40 |
| 131 | + |
| 132 | + |
| 133 | +为了提升降尺度的质量,如果渲染器是OpenGL并且支持mip映射,就会自动开启三线性过滤。 |
| 134 | + |
| 135 | +在Windows上,你可能希望强制使用OpenGL: |
| 136 | + |
| 137 | +``` |
| 138 | +scrcpy --render-driver=opengl |
| 139 | +``` |
| 140 | + |
| 141 | +你可能还需要配置[缩放行为][scaling behavior]: |
| 142 | + |
| 143 | +> `scrcpy.exe` > Properties > Compatibility > Change high DPI settings > |
| 144 | +> Override high DPI scaling behavior > Scaling performed by: _Application_. |
| 145 | +
|
| 146 | +[scaling behavior]: https://github.com/Genymobile/scrcpy/issues/40#issuecomment-424466723 |
| 147 | + |
| 148 | + |
| 149 | +### Wayland相关的问题 |
| 150 | + |
| 151 | +在Linux上,SDL默认使用x11。可以通过`SDL_VIDEODRIVER`环境变量来更改[视频驱动][video driver]: |
| 152 | + |
| 153 | +[video driver]: https://wiki.libsdl.org/FAQUsingSDL#how_do_i_choose_a_specific_video_driver |
| 154 | + |
| 155 | +```bash |
| 156 | +export SDL_VIDEODRIVER=wayland |
| 157 | +scrcpy |
| 158 | +``` |
| 159 | + |
| 160 | +在一些发行版上 (至少包括 Fedora), `libdecor` 包必须手动安装。 |
| 161 | + |
| 162 | +参见 [#2554] 和 [#2559]。 |
| 163 | + |
| 164 | +[#2554]: https://github.com/Genymobile/scrcpy/issues/2554 |
| 165 | +[#2559]: https://github.com/Genymobile/scrcpy/issues/2559 |
| 166 | + |
| 167 | + |
| 168 | +### KWin compositor 崩溃 |
| 169 | + |
| 170 | +在Plasma桌面中,当 _scrcpy_ 运行时,会禁用compositor。 |
| 171 | + |
| 172 | +一种解决方法是, [禁用 "Block compositing"][kwin]. |
| 173 | + |
| 174 | +[kwin]: https://github.com/Genymobile/scrcpy/issues/114#issuecomment-378778613 |
| 175 | + |
| 176 | + |
| 177 | +## 崩溃 |
| 178 | + |
| 179 | +### 异常 |
| 180 | +可能有很多原因。一个常见的原因是您的设备无法按给定清晰度进行编码: |
| 181 | + |
| 182 | +> ``` |
| 183 | +> ERROR: Exception on thread Thread[main,5,main] |
| 184 | +> android.media.MediaCodec$CodecException: Error 0xfffffc0e |
| 185 | +> ... |
| 186 | +> Exit due to uncaughtException in main thread: |
| 187 | +> ERROR: Could not open video stream |
| 188 | +> INFO: Initial texture: 1080x2336 |
| 189 | +> ``` |
| 190 | +
|
| 191 | +或者 |
| 192 | +
|
| 193 | +> ``` |
| 194 | +> ERROR: Exception on thread Thread[main,5,main] |
| 195 | +> java.lang.IllegalStateException |
| 196 | +> at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method) |
| 197 | +> ``` |
| 198 | +
|
| 199 | +请尝试使用更低的清晰度: |
| 200 | +
|
| 201 | +``` |
| 202 | +scrcpy -m 1920 |
| 203 | +scrcpy -m 1024 |
| 204 | +scrcpy -m 800 |
| 205 | +``` |
| 206 | +
|
| 207 | +你也可以尝试另一种 [编码器](README.md#encoder)。 |
| 208 | +
|
| 209 | +
|
| 210 | +## Windows命令行 |
| 211 | +
|
| 212 | +一些Windows用户不熟悉命令行。以下是如何打开终端并带参数执行`scrcpy`: |
| 213 | +
|
| 214 | + 1. 按下 <kbd>Windows</kbd>+<kbd>r</kbd>,打开一个对话框。 |
| 215 | + 2. 输入 `cmd` 并按 <kbd>Enter</kbd>,这样就打开了一个终端。 |
| 216 | + 3. 通过输入以下命令,切换到你的 _scrcpy_ 所在的目录 (根据你的实际位置修改路径): |
| 217 | +
|
| 218 | + ```bat |
| 219 | + cd C:\Users\user\Downloads\scrcpy-win64-xxx |
| 220 | + ``` |
| 221 | +
|
| 222 | + 然后按 <kbd>Enter</kbd> |
| 223 | + 4. 输入你的命令。比如: |
| 224 | +
|
| 225 | + ```bat |
| 226 | + scrcpy --record file.mkv |
| 227 | + ``` |
| 228 | +
|
| 229 | +如果你打算总是使用相同的参数,在`scrcpy`目录创建一个文件 `myscrcpy.bat` |
| 230 | +(启用 [显示文件拓展名][show file extensions] 避免混淆),文件中包含你的命令。例如: |
| 231 | +
|
| 232 | +```bat |
| 233 | +scrcpy --prefer-text --turn-screen-off --stay-awake |
| 234 | +``` |
| 235 | + |
| 236 | +然后双击刚刚创建的文件。 |
| 237 | + |
| 238 | +你也可以编辑 `scrcpy-console.bat` 或者 `scrcpy-noconsole.vbs`(的副本)来添加参数。 |
| 239 | + |
| 240 | +[show file extensions]: https://www.howtogeek.com/205086/beginner-how-to-make-windows-show-file-extensions/ |
0 commit comments