Lỗi Eclipse Máy chủ ADB không ACK, không khởi động được daemon


158

Sau khi cập nhật SDK, Eclipse hiển thị lỗi này:

Máy chủ ADB không ACK, không khởi động được daemon.

Khi tôi chạy một ứng dụng Android, nó mang lại cho tôi những điều sau:

Vui lòng đảm bảo rằng adb được đặt chính xác tại 'D: \ android-sdk-windows \ platform-tools \ adb.exe' và có thể được thực thi.

Làm thế nào tôi có thể khắc phục vấn đề này?


vừa mới cài đặt genymotion và sau đó nó bắt đầu xảy ra giải pháp là loại bỏ lệnh adb khỏi terminal bằng tay và đặt đường dẫn adb trong các biến môi trường trong ubantu trỏ đến sdk / platform-tools và sau đó nó hoạt động.
vikas kumar

Câu trả lời:


263

Cảm ơn, @jowett , tôi đã giải quyết vấn đề tương tự của mình, thực hiện các bước này

Bước 1: CTRL + Shift+ Escđể mở trình quản lý tác vụ, có quá trình adb.exe và kết thúc (giết) quá trình đó

Bước 2: Bây giờ, hãy đóng nhật thực, hiện đang chạy trên máy tính của tôi.

Bước 3: Một lần nữa, khởi động lại nhật thực sau đó giải quyết vấn đề đó.


Đối với những người sử dụng OS X

killall adb

Đối với những người sử dụng Windows

adb kill-server

nên làm thủ thuật.


40

Tôi đã gặp vấn đề tương tự, mặc dù tôi đã không gây ra điều này. Sao cũng được, tôi tìm thấy một số manh mối và cuối cùng đã sửa.

Khi tôi mở SDK và trình quản lý AVD, nhưng tìm phiên bản AVD (2.3.3) không giống với phiên bản lib của Android (2.3). Vì vậy, tôi tạo một AVD mới với 2.3.

Tôi đã sửa nó bằng các bước sau: 1. Mở trình quản lý tác vụ windows và giết tiến trình adb.exe. 2. Đóng nhật thực và khởi động lại nó. Sau đó, nó hoạt động.

Hy vọng nó giúp.


35

Những triệu chứng này xảy ra nếu bạn đang sử dụng trình giả lập Genymotion (trên Windows hoặc Linux) cùng lúc với Android Studio:

adb server is out of date.  killing...
ADB server didn't ACK
* failed to start daemon *

Genymotion bao gồm bản sao của chính nó adb, can thiệp vào một bản được gói trong SDK Android.

Cách dễ nhất để khắc phục dường như là cập nhật Cài đặt Genymotion để nó sử dụng cùng ADB với SDK Android của bạn:

cài đặt genymotion ADB

Chỉ cần kiểm tra tùy chọn "Sử dụng công cụ SDK Android tùy chỉnh" và nhập vị trí mong muốn của bạn.


Hoạt động với tôi sau khi cập nhật Android Studio lên 2.1.2.
Noel Bautista

35

ADB thường sẽ thất bại nếu có một dòng mới adb_usb.ini. Xóa nó, khởi động lại nó và điều đó thường sẽ giải quyết vấn đề (ít nhất là đối với tôi dù thế nào đi nữa).


trong khi cố gắng gỡ lỗi với Kindle Fire muốn tạo một mục trong tệp này ~ / .android / adb_usb.ini, nhưng vô tình thêm một vài dòng trống. Bây giờ loại bỏ nó. Đã sửa, cảm ơn.
Thiru

35

Dấu nhắc lệnh (cmd.exe):

netstat -aon | findstr 5037

Tìm id quá trình của 0.0.0.0:

Nhập mô tả hình ảnh ở đây

Hãy chắc chắn rằng đó là adb.exe:

tasklist | findstr 1980

Nhập mô tả hình ảnh ở đây

Giết quá trình này:

taskkill /f /t /im adb.exe

Nhập mô tả hình ảnh ở đây

Đưa ADB trở lại bình thường:

Nhập mô tả hình ảnh ở đây

Tín dụng: bài đăng trên blog * Máy chủ Android ADB không ACK không khởi động trình nền *


Phía tôi là tfadb.exe, sau khi giết nó, nó hoạt động, cảm ơn bạn.
BobGao

Trong trường hợp của tôi, svchost.exe đã sử dụng cổng. Sau khi giết nó, nó bắt đầu thành công.
Ranka47

13

Nếu bạn đang sử dụng một ứng dụng đồng bộ hóa cho thiết bị, điều đó cũng có thể là do có những ứng dụng khác sử dụng cùng một 5037cổng. Tắt tất cả các dịch vụ chạy trên cảng 5037và thử bắt đầu ADB.

Để kiểm tra xem có ứng dụng nào đang sử dụng cổng 5037 không, hãy sử dụng:

netstat -a -n -o |findstr "5037"

Nhận được PID của ứng dụng.

Sử dụng Process Explorer để tìm Process và thoát nó.

Bây giờ sử dụng adb start-serverhoặc adb get-stateđể bắt đầu / kiểm tra trạng thái máy chủ ADB.

Tôi gặp phải vấn đề khi sử dụng ứng dụng Snappea / Wandoujia Sync.


Cảm ơn! Svchost.exe đang sử dụng cổng đó vì một số lý do đột nhiên.
Jacob L

Tôi không biết khi nào nó sẽ được sửa chữa nhưng thật xấu hổ khi không được sửa chữa.
Dejan

8

Tôi đã gây ra sự cố này bằng cách nhập thêm một dòng trống ở cuối ~ / .android / adb_usb.ini

(Xóa dòng trống thừa đã khắc phục sự cố)


Đã khắc phục vấn đề tương tự bằng cách xóa tất cả các dòng trống, không chỉ cuối cùng.
Pavel

2
Tôi gặp vấn đề tương tự vì tôi đã thêm một dòng trống ở cuối khi nhập dòng Kindle Fire. Tôi đã xóa dòng trống và adb khởi động lại mà không có vấn đề. Cảm ơn.
Jerome Mouneyrac

7

Chúng ta có thể giải quyết vấn đề này một cách dễ dàng.

  1. Mở một dấu nhắc lệnh và làm cd <platform-tools directory>
  2. Chạy lệnh adb kill-server
  3. Mở Trình quản lý tác vụ Windows và kiểm tra xem adbcó còn chạy không. Nếu có, chỉ cần giếtadb.exe
  4. Chạy lệnh adb start-servertrong dấu nhắc lệnh

Nhập mô tả hình ảnh ở đây


Không cần phải khởi động lại Eclipse! :)
TWiStErRob

5

Tôi đã giải quyết câu hỏi đầu tiên của mình: Mở Eclipse, mở Trình quản lý SDK và chọn thiết bị để mở.

Hoặc bạn có thể mở thư mục SDK. Mở Trình quản lý SDK và sau đó chọn thiết bị để mở

2: Đóng Eclipse, và sau đó mở nó.


5

Đảm bảo gỡ lỗi USB trên điện thoại của bạn được bật. ADB kill-server và ADB start-server không phải là vấn đề.

C:\Documents and Settings\Administrator> adb nodaemon server

 - cannot bind 'tcp:5037'

C:\Documents and Settings\Administrator> netstat -aon | findstr "5037"

 - TCP 127.0.0.1:1130 127.0.0.1:5037 TIME_WAIT 0
 - TCP 127.0.0.1:1269 127.0.0.1:5037 TIME_WAIT 0
 - TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3088
 - TCP 127.0.0.1:5037 127.0.0.1:1128 TIME_WAIT 0
 - TCP 127.0.0.1:5037 127.0.0.1:1129 TIME_WAIT 0
 - TCP 127.0.0.1:5037 127.0.0.1:1270 TIME_WAIT 0

C:\Documents and Settings\Administrator>tasklist -fi "pid eq 3088"

 - Image name PID session name session # memory usage

========================= ====== ================ === ===== ============

 - adb.exe 3088 Console 0 3,816 K

C:\Documents and Settings\Administrator>taskkill /f /pid 3088

 - Success: terminate the PID for the process of 3,088.

C:\Documents and Settings\Administrator>adb start-server

 - daemon not running. starting it now on port 5037 *
 - daemon started successfully *

4

Tôi đã bình chọn một câu trả lời khác cho câu hỏi này, nhưng trong trường hợp có ai thắc mắc, bạn không cần phải khởi động lại Eclipse để ADB chạy lại. Chỉ cần mở một shell và chạy lệnh:

adb start-server

Nếu bạn chưa đặt đường dẫn tới ADB trong thuộc tính hệ thống của mình thì trước tiên bạn phải truy cập thư mục chứa ADB (trong Android \ android-sdk \ platform-tools .... Tôi đang chạy Windows, tôi không ' t biết người mac làm việc như thế nào).


2
Điều đó không quan trọng. Tôi nhận được lỗi từ dòng lệnh là tốt.
IgorGanapolsky

Tôi đã không tìm ra cách để làm điều đó trên Mac. Buộc bỏ ADB không giúp được nên tôi phải khởi động lại toàn bộ máy tính. Sau đó, nó hoạt động trở lại.
Marcel Bro

2

Chạy qua sysiternals.com và chọn TCPVIEW và PROCESS EXPLORER, nếu bạn chưa cài đặt chúng.

Vì một số lý do, daemon ADB đang chấm dứt trước khi trao đổi ổ cắm đóng hoàn tất. Nếu bạn chạy (từ dấu nhắc lệnh) "NETSTAT -o", bạn sẽ thấy ổ cắm (thường là 5037) ở trạng thái CLOSE_WAIT và số quy trình sở hữu. Process Explorer sẽ không hiển thị rằng ID tiến trình (daemon bị chấm dứt) và quá trình được gọi là adb.exe (đã mở ổ cắm) sẽ biến mất. (Nếu adb.exe nếu được tìm thấy, hãy thử tắt tác vụ và xem mọi thứ có được dọn sạch không.)

Sử dụng TCPVIEW, xác định vị trí ổ cắm. Cột tên quy trình sẽ hiển thị quá trình liên quan không thể được tìm thấy. Nhấp chuột phải và chọn "Đóng kết nối". Hiện tại ổ cắm đã được đóng và trình nền adb sẽ có thể bắt đầu.


Hữu ích. Ngoài ra, trong Process Explorer, nếu bạn thấy một adb.exe đang chạy với cột Đường dẫn hiển thị [Quá trình mở lỗi], đó có thể là thủ phạm có khả năng.
Samik R

2

Tôi đã có một vấn đề tương tự. Giết một phiên bản hiện tại của quy trình ADB từ Trình quản lý tác vụ không hoạt động đối với tôi.

Chỉ vài ngày trước, tôi đã cố gắng cài đặt MIPS SDK và ADT-17 trước đó và Eclipse đã cho tôi lỗi và tôi đã không khắc phục vấn đề đó.

Vì vậy, bây giờ, khi tôi nhận được máy chủ ADB này không ACK, không khởi động được vấn đề ... daemon , tôi đã thực thi 'Kiểm tra cập nhật' trong Trợ giúp Eclipse mục trình đơn . Không có bản cập nhật khả dụng, nhưng ít nhất 'máy chủ ADB không bị lỗi ACK'.

Tôi hy vọng điều này có thể giúp đỡ trong một vài trường hợp.


1

Nhập ./adb nodaemon servervào một thiết bị đầu cuối.

Nếu nó trả về Invalid content in adb_usb.ini, thì có vấn đề với adb_usb.initệp của bạn trong.android thư mục.

Mở adb_usb.inivà xóa nội dung của nó. Sau đó khởi động lại máy chủ ... nó hoạt động với tôi.


1

Kiểm tra đường dẫn của thư mục Android. Nó không nên chứa không gian, vv

Đồng thời kiểm tra xem plugin đã được cấu hình đúng trong Eclipse → Preferences chưa .

Trong trường hợp của tôi, tôi đã kiểm tra mọi thứ nhiều lần, nhưng nó vẫn không hoạt động. Tôi đã định cài đặt lại mọi thứ, nhưng tôi đã nhận được câu trả lời trên trang web này (một số bài đăng khác).

Hãy kiểm tra phần mềm chống vi-rút của bạn. Nó có thể chặn các cổng của adb.exechương trình giả lập, vv Điều đó đã giải quyết vấn đề trong trường hợp của tôi.


1

Ngoài giải pháp của @Bastet :

Thật ra chúng ta phải giết quá trình bằng cách sử dụng địa chỉ 0.0.0.0:0. Đó là lý do tại sao đối với hầu hết những người giết adb.exetừ Trình quản lý tác vụ đều hoạt động (trong trường hợp của tôi, tôi không thể nhìn thấy nó ngay cả trong Trình quản lý tác vụ).

Theo các bước @Bastet , tôi phát hiện ra rằng một số quy trình khác đang sử dụng địa chỉ này. Tôi đã đi trước để giết nó, và nó đã cho tôi ACCESS DENIEDnhư Error.

Vì vậy, bằng cách sử dụng tasklist | findstr ****tôi đã tìm ra tên của quá trình và giết nó từ Trình quản lý tác vụ.

Sau đó nó bắt đầu làm việc.

Trong trường hợp của tôi bas_daemonbas_helperđang sử dụng địa chỉ này, cả hai đều tương ứng với MOBOROBO .


0

Tôi đã từng gặp vấn đề tương tự. Nhưng không có quá trình adbtrên máy tính xách tay của tôi. Tôi chỉ cần đăng xuất và đăng nhập vào tài khoản của mình và nó đã được giải quyết ...

ADB có thể bắt đầu từ cửa sổ CMD sau đó.


0

Cách tốt nhất và hiệu quả nhất mà không cần khởi động lại bất kỳ thiết bị hoặc phần mềm nào là:

Chạy như sau:

adt-bundle-windows-x86_64\sdk\platform-tools\adb.exe

Và một điều nữa .. ADB là một thứ tự phụ thuộc. Bạn không thể làm bất cứ điều gì cho đến khi nó muốn nó hoạt động. Có một cách nữa mà tôi phát hiện ra: Để thiết bị kết nối trong 5-6 phút và chờ đợi. Thiết bị sẽ sớm được kết nối và cố gắng khởi chạy.


0

Điều này đã không bắt đầu xảy ra với tôi cho đến khi tôi root điện thoại Samsung Galaxy S III của mình (theo hướng dẫn diễn đàn dành cho nhà phát triển xda).

Nó xảy ra khá ngẫu nhiên, nhưng nó chắc chắn xảy ra trong khi chạy Eclipse.

Giết quá trình adb.exe và khởi động lại nó sẽ giải quyết vấn đề.


0

Nhìn vào phần mềm chống vi-rút hoặc tường lửa ... Có ai trong số đó chặn bạn truy cập không ... Trong phần mềm chống vi-rút k7 tôi đã tắt màn hình hệ thống và nó hoạt động với tôi ...


-1

Tôi đã phải cho phép adb.exe truy cập mạng của mình trong tường lửa.


1
Tôi đang sử dụng tường lửa này: sphinx-soft.com/de/Vista/order.html Tất cả những gì tôi đã làm là thay đổi quy tắc của adb.exe thànhallow all
Terel

-1

Giết Eclipse và sau đó khởi động lại không giúp tôi. Tôi đã thêm công cụ Android vào các biến PATH, khởi động Trình quản lý tác vụ và tắt adb.exe.

Tôi đã khởi động lại Eclipse và sau đó nó hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.