Frequently Asked Questions
Here are the common reported problems and their status.
If you encounter any error, the first step is to upgrade to the latest version.
adb and USB issues
Section titled “adb and USB issues”scrcpy execute adb commands to initialize the connection with the device. If
adb fails, then scrcpy will not work.
This is typically not a bug in scrcpy, but a problem in your environment.
adb not found
Section titled “adb not found”You need adb accessible from your PATH.
On Windows, the current directory is in your PATH, and adb.exe is included
in the release, so it should work out-of-the-box.
Device not detected
Section titled “Device not detected”ERROR: Could not find any ADB device
Check that you correctly enabled adb debugging.
Your device must be detected by adb:
adb devicesIf your device is not detected, you may need some drivers (on Windows). There is a separate USB driver for Google devices.
Device unauthorized
Section titled “Device unauthorized”ERROR: Device is unauthorized:ERROR: --> (usb) 0123456789abcdef unauthorizedERROR: A popup should open on the device to request authorization.
When connecting, a popup should open on the device. You must authorize USB debugging.
If it does not open, check stackoverflow.
Several devices connected
Section titled “Several devices connected”If several devices are connected, you will encounter this error:
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)
In that case, you can either provide the identifier of the device you want to mirror:
scrcpy -s 0123456789abcdefOr request the single USB (or TCP/IP) device:
scrcpy -d # USB devicescrcpy -e # TCP/IP deviceNote that if your device is connected over TCP/IP, you might get this message:
adb: error: more than one device/emulatorERROR: "adb reverse" returned with value 1WARN: 'adb reverse' failed, fallback to 'adb forward'
This is expected (due to a bug on old Android versions, see #5), but in that case, scrcpy fallbacks to a different method, which should work.
Conflicts between adb versions
Section titled “Conflicts between adb versions”adb server version (41) doesn't match this client (39); killing...
This error occurs when you use several adb versions simultaneously. You must
find the program using a different adb version, and use the same adb version
everywhere.
You could overwrite the adb binary in the other program, or ask scrcpy to
use a specific adb binary, by setting the ADB environment variable:
# 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'scrcpyDevice disconnected
Section titled “Device disconnected”If scrcpy stops itself with the warning “Device disconnected”, then the
adb connection has been closed.
Try with another USB cable or plug it into another USB port. See #281 and #283.
OTG issues on Windows
Section titled “OTG issues on Windows”On Windows, if scrcpy --otg (or --keyboard=aoa/--mouse=aoa) results in:
ERROR: Could not find any USB device
(or if only unrelated USB devices are detected), there might be drivers issues.
Please read #3654, in particular this comment and the next one.
Control issues
Section titled “Control issues”Mouse and keyboard do not work
Section titled “Mouse and keyboard do not work”On some devices, you may need to enable an option to allow simulating input. In developer options, enable:
USB debugging (Security settings)
Allow granting permissions and simulating input via USB debugging
Rebooting the device is necessary once this option is set.
Special characters do not work
Section titled “Special characters do not work”The default text injection method is limited to ASCII characters. A trick allows to also inject some accented characters, but that’s all. See #37.
To avoid the problem, change the keyboard mode to simulate a physical keyboard.
Client issues
Section titled “Client issues”Issue with Wayland
Section titled “Issue with Wayland”By default, SDL uses x11 on Linux. The video driver can be changed via the
SDL_VIDEODRIVER environment variable:
export SDL_VIDEODRIVER=waylandscrcpyOn some distributions (at least Fedora), the package libdecor must be
installed manually.
KWin compositor crashes
Section titled “KWin compositor crashes”On Plasma Desktop, compositor is disabled while scrcpy is running.
As a workaround, disable “Block compositing”.
Crashes
Section titled “Crashes”Exception
Section titled “Exception”If you get any exception related to MediaCodec:
ERROR: Exception on thread Thread[main,5,main]java.lang.IllegalStateException at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)then try with another encoder.
Translations
Section titled “Translations”Translations of this FAQ in other languages are available in the wiki.
Only this FAQ file is guaranteed to be up-to-date.