Scrcpy: NullPointerException ClipboardManager.getAddPrimaryClipChangedListener()

Created on 28 May 2020  路  15Comments  路  Source: Genymobile/scrcpy

  • [x] I have read the FAQ.
  • [x] I have searched in existing issues.

Environment

  • OS: [Ubuntu 18.04 LTS]
  • scrcpy version: [v1.14]
  • installation method: [snap]
  • device model: Custom Android device running Snapdragon 210
  • Android version: [v6.0.1]

Describe the bug
Crash on opening Scrcpy after snap updated it to v1.14.
I understand that older Android devices are not supported, but this device was working perfectly until scrcpy v1.13.
Tried using scrcpy -m 800/1080/1920, etc. as suggested for this issue in countless older threads
but this doesn't work.
Tried changing to lower bitrate as well scrcpy -b 1M/2M but to no avail.

On errors, please provide the output of the console (and adb logcat if relevant).

INFO: scrcpy 1.14 <https://github.com/Genymobile/scrcpy>
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed. 1.0 MB/s (33142 bytes in 0.033s)
[server] INFO: Device: **Redacted** (Android 6.0.1)
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
    at com.genymobile.scrcpy.wrappers.ClipboardManager.getAddPrimaryClipChangedListener(ClipboardManager.java:99)
    at com.genymobile.scrcpy.wrappers.ClipboardManager.addPrimaryClipChangedListener(ClipboardManager.java:111)
    at com.genymobile.scrcpy.Device.<init>(Device.java:83)
    at com.genymobile.scrcpy.Server.scrcpy(Server.java:23)
    at com.genymobile.scrcpy.Server.main(Server.java:225)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)

I've downgraded scrcpy to v1.12-1-g71df317 via channel 'edge' and it's working fine now.
Even if this issue is not resolved, I request the devs to keep older versions v1.12 or v1.13 available via snap channels for easy downgrade.

Most helpful comment

Hey @rom1v, I have succesfully tested this binary and everything is working perfectly!
I now get this beautiful warning: [server] WARN: No clipboard manager, copy-paste between device and computer will not work

Thank you very much!

All 15 comments

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
  at com.genymobile.scrcpy.wrappers.ClipboardManager.getAddPrimaryClipChangedListener(ClipboardManager.java:99)

Wow, that manager is null, it's weird.

On v1.13, what happens if you Ctrl+c or Ctrl+Shift+v?

On v1.13, if I Ctrl+C it just exits back to terminal stdin. No more output from scrcpy or anything like that.

On v1.13, if I Ctrl+C it just exits back to terminal stdin.

I mean Ctrl+c in the scrcpy window (not in the terminal).

Oh! My bad. So I get this error on doing Ctrl+C in the scrcpy window;

INFO: scrcpy 1.13 <https://github.com/Genymobile/scrcpy>
/usr/local/share/scrcpy/scrcpy-server:...shed. 0.6 MB/s (27694 bytes in 0.042s)
[server] INFO: Device: *Redacted* (Android 6.0.1)
INFO: Renderer: opengl
INFO: OpenGL version: 3.0 Mesa 19.2.8
INFO: Trilinear filtering enabled
INFO: Initial texture: 720x480
[server] ERROR: Exception on thread Thread[Thread-10,5,main]
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
    at com.genymobile.scrcpy.wrappers.ClipboardManager.getGetPrimaryClipMethod(ClipboardManager.java:28)
    at com.genymobile.scrcpy.wrappers.ClipboardManager.getText(ClipboardManager.java:65)
    at com.genymobile.scrcpy.Device.getClipboardText(Device.java:153)
    at com.genymobile.scrcpy.Controller.handleEvent(Controller.java:109)
    at com.genymobile.scrcpy.Controller.control(Controller.java:66)
    at com.genymobile.scrcpy.Server$1.run(Server.java:48)
    at java.lang.Thread.run(Thread.java:818)

Side note: After doing Ctrl+C, the scrcpy window is unresponsive. I am able to see the live stream but cannot control my device through scrcpy anymore.

OK, so we can't retrieve the ClipboardManager. Which device is it? Is it a specific ROM?

This is a custom Android product (not a phone).
This is running Android v6.0.1 API 23. I can confirm that we have not removed the ClipboardManager service from our custom AOSP build.

Understood, thank you very much! I will get back to you ASAP.

Could you try the clipboard_manager branch, please?

Oh wow, yes will do! Thanks :)

The clipboard_manager branch is working for my android 5.1.1 device, which is rk322x based box

[ro.build.id]: [LMY49F]
[ro.build.version.release]: [5.1.1]
[ro.build.flavor]: [rk322x_echo-user]
[ro.build.version.security_patch]: [2016-04-01]

thanks @rom1v

@rom1v Apologies for the delay, do I need to build the server as well or can I use pre-built?

You could test the version (with binaries provided) from #1598, it includes this change.

Hey @rom1v, I have succesfully tested this binary and everything is working perfectly!
I now get this beautiful warning: [server] WARN: No clipboard manager, copy-paste between device and computer will not work

Thank you very much!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

fleytman picture fleytman  路  4Comments

SamuelBlickle picture SamuelBlickle  路  3Comments

tonypachino picture tonypachino  路  3Comments

qymspace picture qymspace  路  3Comments

udit7395 picture udit7395  路  4Comments