adb gagal dengan "tidak dapat mengikat 'lokal: 5037'"

3

Setiap adbperintah menghasilkan output berikut:

* daemon not running. starting it now on port 5037 *
cannot bind 'local:5037'
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon

Tidak ada instance adb yang berjalan, dan tidak ada yang menggunakan port TCP 5037.

pengguna49740
sumber
Periksa jawaban ini, mungkin ini membantu: stackoverflow.com/questions/17638919/adb-not-running/…
Irineu Antunes

Jawaban:

6

Perhatikan bahwa kesalahan mengatakan local:5037, tidak tcp:5037. ADB sebenarnya sedang mencoba untuk terhubung ke soket unix di /tmp/5037, yang gagal.

Dalam kasus saya ini karena saya menjalankan adb sebagai root sebelumnya. Jadi, soket itu dimiliki oleh root, melarang pengguna saya menghapusnya. Kutipan yang relevan dari strace adb fork-server server:

socket(PF_LOCAL, SOCK_STREAM, 0)        = 8
unlink("/tmp/5037")                     = -1 EPERM (Operation not permitted)
setsockopt(8, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(8, {sa_family=AF_LOCAL, sun_path="/tmp/5037"}, 12) = -1 EADDRINUSE (Address already in use)
close(8)                                = 0
pengguna49740
sumber
4
Bagi siapa pun yang menemukan ini, sudo adb kill-servermungkin tidak membebaskan port, dan sudo rm /tmp/5037tampaknya memperbaikinya.
Seseorang di suatu tempat