Possible problem on Shield with Android 9?

Now, I'm not actually sure Android 9 is to blame, because I hadn't used the shield or virtualhere for a few months, but when I turned it on on the weekend there was an update for Android 9, so I installed it and since then Virtualhere hasn't been working. The client on my windows 10 PC discovers it fine, but then sits there trying to connect and eventually times out with a general "Unable to connect" type message. When I checked the system the system messages on the server on the Shield, I noticed a bunch of exceptions when it was trying to make the connection, wasn't really sure what to paste the log into so I took a photo, its basically just the same message repeating over and over.

https://photos.app.goo.gl/BL6RmEt28NkT4D9U8

I tried clearing all the cache and data from the app and restarting it, gave it all the permissions it asked for, tried uninstalling it and rebooting then reinstalling it, but no luck. Any ideas what could be causing this?

#2

I tested this on my shield, i updated android 9 and also *updated to the latest version of the Virtualhere app in the play store* by checking for updates in the Apps section in the shield and Updating all. The virtualhere app worked fine before and after the app update. Anyway double check you have updated to the latest virtualhere app (which is version 4.0.0 at the moment), you might be using an old app version. I wrote the virtualhere server app on android 10 (Android Q) so it should definately work fine in android 9

#3

Ah damn, yeah I definitely have the latest version, I made sure of that. I'll try a factory reset on my Shield tonight, maybe something just got screwed up with it somewhere along the line, thanks for testing it out though :)

#4

Well I'm completely at a loss, did a full factory reset and blew everything away, then after setting it back up installed just Virtualhere, and still getting the same problem. Tried static IP and DHCP, tried wifi and ethernet, different network cables, IPv6 on and off, I got nothing left to try :(

#5

Can you somehow copy all the log from the menu -> System Messages and paste into this post

#6

Ok, I managed to get the system messages log cut and pasted and off the shield, this is what it says, this is just after a fresh reboot and all I have plugged in is a usb keyboard

--------- beginning of main
08-15 01:21:25.604 8369 8369 E e.androidserve: Not starting debugger since process cannot load the jdwp agent.
08-15 01:21:32.342 8369 8369 W ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@b62e6d2
08-15 01:22:08.145 8369 8369 W ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@5fab41b
08-15 01:22:08.220 8369 8369 D OpenGLRenderer: Skia GL Pipeline
08-15 01:22:08.330 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingString failed to get INvCplHalService
08-15 01:22:08.331 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingString failed to get INvCplHalService
08-15 01:22:08.333 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.333 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.336 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.336 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.362 8369 9029 I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 1
08-15 01:22:08.363 8369 9029 I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 1
08-15 01:22:08.363 8369 9029 I OpenGLRenderer: Initialized EGL, version 1.4
08-15 01:22:08.363 8369 9029 D OpenGLRenderer: Swap behavior 2
08-15 01:22:08.376 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.377 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.379 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.395 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingStringLength failed to get INvCplHalService
08-15 01:22:08.395 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.395 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingStringLength failed to get INvCplHalService
08-15 01:22:08.399 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.400 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.400 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.401 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.404 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.406 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.673 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.673 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:08.754 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:08.754 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:08.770 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:08.817 8369 9051 I vhusbd : Thu Aug 15 01:22:08 2019 LOG_INFO >>> Starting VirtualHere USB Server v4.0.0 (Built: Jul 29 2019, 20:31:59)<<<
08-15 01:22:08.817 8369 9051 I vhusbd : Thu Aug 15 01:22:08 2019 LOG_INFO Using configuration /data/data/com.virtualhere.androidserver/config.ini
08-15 01:22:08.872 8369 9051 I vhusbd : Thu Aug 15 01:22:08 2019 LOG_INFO Server licensed to=unlicensed max_devices=1
08-15 01:22:08.872 8369 9051 I vhusbd : Thu Aug 15 01:22:08 2019 LOG_INFO Using large URB's
08-15 01:22:08.873 8369 9051 I vhusbd : Thu Aug 15 01:22:08 2019 LOG_INFO Listening on all network interfaces at TCP port 7575 (IPv6 dual-stack)
08-15 01:22:08.874 8369 9051 I vhusbd : VirtualHere USB Server is running...press CTRL-C to stop
08-15 01:22:09.855 8369 9051 I vhusbd : Thu Aug 15 01:22:09 2019 LOG_ERR VirtualHere 4.0.0 caught signal 11 (Segmentation fault) and must exit. Sorry for the inconvenience, please contact mail@virtualhere for help
08-15 01:22:09.855 8369 9051 I vhusbd : VirtualHere 4.0.0 caught signal 11 (Segmentation fault) and must exit. Sorry for the inconvenience, please contact mail@virtualhere for help
08-15 01:22:13.842 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:13.842 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:13.884 8369 8390 W System : A resource failed to call close.
08-15 01:22:13.884 8369 8390 W System : A resource failed to call close.
08-15 01:22:15.027 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:15.027 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:17.634 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:17.635 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:22:21.207 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:21.207 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:27.380 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:27.380 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:33.547 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:33.547 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:39.683 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:39.683 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:45.883 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:45.883 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:51.903 8369 9029 D OpenGLRenderer: endAllActiveAnimators on 0x2707f59000 (RippleDrawable) with handle 0x26f8133cc0
08-15 01:22:51.912 8369 8369 W InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
08-15 01:22:52.123 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:52.123 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:58.337 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:22:58.338 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:02.098 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:23:02.099 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:23:04.559 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:04.559 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:05.494 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:23:05.495 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:23:10.723 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:10.723 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:16.857 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:16.857 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:17.780 8369 9029 D OpenGLRenderer: endAllActiveAnimators on 0x2707f7c000 (RippleDrawable) with handle 0x27088b27c0
08-15 01:23:17.787 8369 8369 W InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
08-15 01:23:23.005 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:23.005 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:29.172 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:29.172 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:35.346 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:41.499 8369 8369 I chatty : uid=10106(com.virtualhere.androidserver) identical 4 lines
08-15 01:23:41.499 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:45.643 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:23:45.643 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:23:47.738 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:47.738 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:53.336 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:23:53.337 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:23:53.942 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:23:53.942 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:00.179 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:00.179 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:06.407 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:06.407 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:06.578 8369 9029 D OpenGLRenderer: endAllActiveAnimators on 0x2708a1c300 (RippleDrawable) with handle 0x2707f9b040
08-15 01:24:06.586 8369 8369 W InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
08-15 01:24:12.571 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:12.571 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:18.723 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:18.723 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:24.955 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:24.955 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:31.195 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:31.195 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:37.437 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:43.647 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:49.851 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:49.851 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:24:56.077 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:02.265 8369 8369 I chatty : uid=10106(com.virtualhere.androidserver) identical 2 lines
08-15 01:25:02.265 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:08.507 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:08.508 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:14.750 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:14.750 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:20.991 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:45.757 8369 8369 I chatty : uid=10106(com.virtualhere.androidserver) identical 8 lines
08-15 01:25:45.758 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:50.487 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:25:50.488 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:25:50.512 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:50.512 8369 8369 I chatty : uid=10106(com.virtualhere.androidserver) identical 1 line
08-15 01:25:50.513 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:51.931 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:51.931 8369 8369 E virtualhere-daemon: Opening local exception: Connection refused
08-15 01:25:52.383 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService
08-15 01:25:52.385 8369 9029 E libnvcpl_vendor: NvCplGetAppProfileSettingInt failed to get INvCplHalService

#7

OK thats a surprise, it looks like the server is crashing when its trying to detect the attached USB device. Can you tell me the exact usb device (model/name) you have plugged in? Its failing to properly detect it

#8

In that instance it was the wireless receiver for a Corsair k63 keyboard that was plugged directly into one of the USB ports on the shield. My normal setup is a USB hub plugged into the shield, with the keyboard receiver, a wireless receiver for a Logitech g900 mouse and an Xbox one wireless dongle. It used to work fine, I've used virtualhere on the shield to share all those devices in the past, really weird =\

#9

Is it possible to not use the usb hub and plug the devices directly into the sheild. Ive looked at getting the receiver for the k62 but they dont deliver to australia unfortunatley so its tough to debug. If nothing changed except for android then its probably some bug in android after the update. If you are interested i can send you a debug build of the server to get a bit more information.

Do the other devices work ok? Or is it just that dongle that causes the crash

#10

Hi,
I just wanted to add that I have the same issue. The server (version 4.0.0 running on Nvidia Shield with Android 9) and Windows 10 client were running, but the client was unable to connect to the server. After reading this thread and doing some troubleshooting on my own I tried removing the Corsair K63 receiver, and the client was able to connect without issues, and the other two devices (a Logitech G603 receiver and an Asus Bluetooth receiver) were found without issues.

I also tried downgrading the server to 3.8.7, but got the same results there. It was working with the Corsair K63 receiver about a month ago, so the recent Nvidia Shield update to Android 9 should be the only thing that has changed since then.

#11

Yep, looks like the same thing for me, definitely seems to be the Corsair K63 receiver. When I unplugged that and just had the logitech g900 receiver plugged in, virtualhere works fine and the client on my Windows PC can connect to it

#12

Oh yeah, I'm happy to try a debug build if you want a bit more info

#13

OK I went and bought a K63 from the local shop and i found the bug. So ive fixed it in 4.0.1 of the app and pushed it to the playstore and you should get the fix in an hour or so

#15

Thanks! However, version 4.0.1 crashes on startup. It says "Server is stopped" for a few seconds, sometimes you see a glimpse of the "Server is running" text (don't remember the exact words) before it crashes. I can't copy the log from the app (as it crashes before I get the chance to do it), but if I can copy it directly from the file system somewhere on my non-rooted Shield, I'll be glad to paste it here. Just let me know the path to look for in that case.

I also went back and forth a few times between 4.0.0 and 4.0.1 just to be sure, and the behavior was consistent - it starts just fine on 4.0.0 and crashes on 4.0.1.

Thanks in advance!

#16

OK can you try it again a few times and let it crash and i will get the debug output in the google play store console app. (Its automatically sent there)

#17

Thanks, fixed the bug in 4.0.2 which i just pushed to the playstore so you should get the update soon.

#18

Awesome, thanks a lot! just updated to the new version, and now the server doesn't crash and the client finds it and all its devices (including the K63 receiver) correctly.

May I ask, what's that thing about "devices without serial number" from the release notes? From what I can tell looking at the client software, there is a serial number for my server device.

#19

There ended up being two fixes

1. There is a bug in the latest Android on the shield where it put rubbish characters in some of the device names when they are queried. The previous build of android for the shield worked properly and didn't do this. So when virtualhere queried the name of the USB device it would return invalid characters which would crash the virtualhere app.

2. To fix that i then removed all invalid characters, but i forgot that some devices dont have usb serial numbers (a feature of the usb spec) and i was trying to clear invalid characters from a null string which caused a null pointer exception and the second crash you saw.

So i fixed those issues and all is working again :)

#20

Ah I see, the devices without serial number were USB devices, not the server device. Makes sense, now that I think about it :)

Thanks for the explanation, and for your generally excellent support!