Skip to content

Scrcpy ​

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 ​

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 ​

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 ​

ERROR: Could not find any ADB device

Check that you correctly enabled adb debugging.

Your device must be detected by adb:

adb devices

If your device is not detected, you may need some drivers (on Windows). There is a separate USB driver for Google devices.

Device unauthorized ​

ERROR: Device is unauthorized:
ERROR:     -->   (usb)  0123456789abcdef          unauthorized
ERROR: 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 ​

If several devices are connected, you will encounter this error:

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)

In that case, you can either provide the identifier of the device you want to mirror:

bash
scrcpy -s 0123456789abcdef

Or request the single USB (or TCP/IP) device:

bash
scrcpy -d  # USB device
scrcpy -e  # TCP/IP device

Note that if your device is connected over TCP/IP, you might get this message:

adb: error: more than one device/emulator
ERROR: "adb reverse" returned with value 1
WARN: '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 ​

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:

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

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 ​

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 ​

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 ​

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 ​

Issue with Wayland ​

By default, SDL uses x11 on Linux. The video driver can be changed via the SDL_VIDEODRIVER environment variable:

bash
export SDL_VIDEODRIVER=wayland
scrcpy

On some distributions (at least Fedora), the package libdecor must be installed manually.

See issues #2554 and #2559.

KWin compositor crashes ​

On Plasma Desktop, compositor is disabled while scrcpy is running.

As a workaround, disable "Block compositing".

Crashes ​

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.

Views 0, Visitors 0
TodayViews 0, TodayVisitors 0