ddms: 'adb.exe,start-server' failed — run

2019-02-02 03:49发布

问题:

My adb is down, no matter I am using ADT or Android Studio.

And according to the second answer of this SO question, I did:

  1. I type:

    adb nodaemon server
    

    Output:

    cannot bind 'tcp:5037'
    
  2. Then netstat -ano | findstr 5037

    I did find a pid of 7416 who listen in 127.0.0.1:5037

  3. I use taskkill /pid 7416 -f to kill it.

  4. I type netstat -ano | findstr 5037 again, I found another pid listens at 127.0.0.1:5037 again!

I guess they are the same, but I have no idea who it is.

Can I simply have a easy way to release this port or change the adb port to another one?

回答1:

In my case I was trying to use genymotion emulator device. With genymotion opened and running, I've tried to run my app in this emulator but I it doesn't worth

In this part I had this error:

'C:\Users\Jose\AppData\Local\Android\sdk\platform-tools\adb.exe,start-server' failed -- run manually if necessary

Then I've tried Jaskey's solution but it doesn't works.

So I stopped genymotion emulator. Then I restart ADB (Tools > Android > Unchecked Unable ADB Integration then I've checked again)

Next I've start genymotion emulator again And now the app works on the emulator.



回答2:

Sometimes there are conflicts between ADB Genymotion and ADB SDK because both of them use the same port. So I recommend always set up ADB Genymotion to use the ADB SDK, in that way to avoid incompatible issues.

Genymotion-> Settings -> ADB -> Use custom Android SDK tools (here your set up your sdk android location).



回答3:

For Windows,

Close Android Studio and any of your Emulators you are using,

then goto->TaskManager and Kill the process(adb.exe)

After finishing all these First open Android studio followed by emulators.



回答4:

I solve this problem at last! I finally found the program name of the pid and I kill it in the task manager.

The way to detect is described in the question:

  1. adb nodaemon server

Output:

cannot bind 'tcp:5037'

2.and then netstat -ano | findstr 5037 to find who takes this port.

Get the pid and find it in the task manager. Please note that the process tab may not show the column of pid, we should include it by setting.

In my case, it is tfadb.exe who takes this port! This is a Chinese Video program client! Try to kill it in task manager.

Now I stop it starting from booting. The problem is solved.



回答5:

Open the Genymotion emulator after opening The Android studio.



回答6:

I solved by End task "adb.exe" background process from task manager. and Start adb thats it :)



回答7:

Just goto the task manager on your PC, and kill adb.exe, then back to your android studio. it should initialize and reconnect.



回答8:

disconnect any usb connected android devices. I was tethering to my laptop via my cellphone for internet connection. I got the adb start server failed error with loopback error "port is only used for one socket connection".

I disconnected my cellphone usb connection from my laptop and now android studio recognizes my genymotion emulator and another android device I have connected via usb in the deployment target box.



回答9:

in my case one application on window use adb.exe.

that application name is mobogenie.

Fixed :: Goto Window TaskManager select adb.exe and press End process



回答10:

if genymotion or emulator not working try to install pdanet+ in your system and mobile device choose your mobile type(motorola,sony,other)it will automatically install driver and run your application in mobile device.



回答11:

Check the firewall of the system. May be the "allow app to communicate through windows firewall" may have blocked android studio.



回答12:

Close Android studio then go to Task Manager

  • End Task adb.exe
  • goto Details menu
    • End Task java.exe and jusched.exe

now open Android Studio it will work properly