The USB connection is unstable with Nexus S (Android 2.3.4) on AMD 64 running 64-bit Windows 7, but it works with 32-bit Windows Vista.
Problem Description:
On the 64-bit Windows 7 machine my Nexus S appears to connect, but then it disconnects moments later. Neither accessing USB storage or loading an Android application package file (APK) using the Android Debug Bridge (ADB) work. On 32-bit Windows Vista using the same USB cable, USB storage works. I haven't tried the ADB on 32-bit Windows Vista.
Reproduction steps for USB storage:
(I have provided the reproduction steps for USB storage and not ADB, because if one isn't working, then the other isn't working either and the USB storage reproduction steps are shorter to document.)
Connect the USB cable to the Nexus S and my Windows 7 machine.
Effect: The "USB Mass Storage, USB Connected" dialog appears with the button "Turn on USB storage."
Click "Turn on USB Storage"
Effect: The "working circle" appears. A dialog briefly appears saying "USB storage in use," then it either returns me to Step 1 (now that I am running 2.3.4) or is replaced with the Nexus S's application homepage (while I was running 2.3.3). I'm not sure if the version matters, but I mention it for completeness.
On the 32-bit Windows Vista machine the connection is stable. I am able to navigate through the Nexus S file system create, read, update, and delete files, etc. I haven't tried connecting with the ADB.
Troubleshooting summary:
Tried and failed:
Uninstalling and reinstalling the Android USB drivers including removing the files.
Uninstalling my custom software
Pulling the Nexus S's battery
Restarting the Nexus S
Restarting 64-bit Windows 7
Changing USB ports on the 64-bit Windows 7 box
Compared the dates and file size on the DLLs in my google-usb_driver\amd64 directory and the windows\System32 directory. They match. The sizes for the google-usb_driver\i386 directory do not match (expected).
Turning off Debugging mode on the Nexus S does not resolve the problem.
Searching Google.
Tried and succeeded:
Connecting to another machine (Windows Vista) using the same USB cable and Nexus S phone.
Troubleshooting observations:
I notice that uninstalling the device drivers and deleting the files, then reinstalling the drivers, then rebooting 64-bit Windows 7 then unplugging the Nexus S, then plugging it back in occasionally helps for a short amount of time (minutes to hours, not days). When it is working, I can both access the Nexus S's drive and load/test applications using the ADB.
I have observed some wonky behavior in the Device Manager that I haven't tracked down. Sometimes the black Nexus S image appears in the list of devices. Sometimes the image displays as a computer with a green ISA card. Sometimes it neither appears on the top level of devices nor under “other devices,” but it does appear under "disk drives" as "Android UMS Composite USB Device."
System configuration:
The Nexus S is running Android OS 2.3.4's "Settings\about phone\System updates" indicates that it is up to date as of May 21st 2011.
Both 32-bit Windows Vista and 64-bit Windows 7 are up to date.
The Windows Vista system is running on an Intel 32-bit processor. Windows 7 is running on an AMD 64-bit processor.
I have done Android development on both systems, but I usually develop on the 64-bit Windows 7 machine.