Skip to content

--new-display errors: java.lang.AbstractMethodError: DisplayWindowListener.onDisplayAddSystemDecorations(int) #6331

Description

@nunomcardoso

Environment

  • OS: macOS (M2)
  • Scrcpy version: 3.3.1
  • Installation method: brew
  • Device model: Google Pixel 8
  • Android version: 16 (Security update: 5 Setember 2025)

Describe the bug

Context: I was trying to display the new Desktop Mode on the Google Pixel phones.
Developer options > Windows Management > Enable desktop experience features (After reboot it shows icon bar via HDMI Out or via Developer options > Drawing > Simulate secondary displays)

After the command it opens a new window and flashes the new display (with wallpaper and icons) and errors out.
Tried it with tcpip and usb, no difference.

user@macbook ~ % scrcpy --new-display=1920x1080/240
scrcpy 3.3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     --> (tcpip)  10.0.0.100:5555                 device  Pixel_8
/opt/homebrew/Cellar/scrcpy/3.3.1_1/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 60.4 MB/s (90788 bytes in 0.001s)
[server] INFO: Device: [Google] google Pixel 8 (Android 16)
INFO: Renderer: metal
INFO: Texture: 1920x1080
[server] INFO: New display: 1920x1080/240 (id=100)
[server] ERROR: Exception on thread Thread[binder:7103_1,5,main]
java.lang.AbstractMethodError: abstract method "void android.view.IDisplayWindowListener.onDisplayAddSystemDecorations(int)" on receiver java.lang.Class<com.genymobile.scrcpy.video.DisplaySizeMonitor$1>
	at android.view.IDisplayWindowListener$Stub.onTransact(IDisplayWindowListener.java:231)
	at android.os.Binder.execTransactInternal(Binder.java:1446)
	at android.os.Binder.execTransact(Binder.java:1385)
WARN: Device disconnected
Aborted 

The screen doesn't appear on display list:

user@macbook ~ % scrcpy --list-displays
scrcpy 3.3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     -->   (usb)  GPIXEL8                  device  Pixel_8
/opt/homebrew/Cellar/scrcpy/3.3.1_1/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 57.3 MB/s (90788 bytes in 0.002s)
[server] INFO: Device: [Google] google Pixel 8 (Android 16)
[server] INFO: List of displays:
    --display-id=0    (1080x2400)

I can do it manually without a problem with adb and use scrcpy to view that display, it works without any error:

user@macbook ~ % adb shell settings put global overlay_display_devices 1920x1080/240

user@macbook ~ % scrcpy --list-displays                                             
scrcpy 3.3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     -->   (usb)  GPIXEL8                  device  Pixel_8
/opt/homebrew/Cellar/scrcpy/3.3.1_1/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 40.2 MB/s (90788 bytes in 0.002s)
[server] INFO: Device: [Google] google Pixel 8 (Android 16)
[server] INFO: List of displays:
    --display-id=0    (1080x2400)
    --display-id=106    (1920x1080)

user@macbook ~ % scrcpy --display-id=106                                            
scrcpy 3.3.1 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO:     -->   (usb)  GPIXEL8                  device  Pixel_8
/opt/homebrew/Cellar/scrcpy/3.3.1_1/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 35.5 MB/s (90788 bytes in 0.002s)
[server] INFO: Device: [Google] google Pixel 8 (Android 16)
INFO: Renderer: metal
[server] WARN: Display doesn't have FLAG_SUPPORTS_PROTECTED_BUFFERS flag, mirroring can be restricted
INFO: Texture: 1920x1080

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions