Environment
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.
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.
OK, then please check how the clipboard manager is loaded by introspection:
It might help to understand why it does not work on your product. In your case, the call to getService() returns null.
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!
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 workThank you very much!