ข้อผิดพลาด Eclipse“ เซิร์ฟเวอร์ ADB ไม่ได้เป็น ACK, ไม่สามารถเริ่มดีมอน”


158

หลังจากอัปเดต SDK แล้ว Eclipse จะแสดงข้อผิดพลาดนี้:

เซิร์ฟเวอร์ ADB ไม่ใช่ ACK ไม่สามารถเริ่ม daemon

เมื่อฉันเรียกใช้แอปพลิเคชัน Android มันให้สิ่งต่อไปนี้กับฉัน:

โปรดตรวจสอบว่า adb ตั้งอยู่อย่างถูกต้องที่ 'D: \ android-sdk-windows \ platform-tools \ adb.exe' และสามารถดำเนินการได้

ฉันจะแก้ไขปัญหานี้ได้อย่างไร


เพิ่งติดตั้ง genymotion และหลังจากนั้นก็เริ่มเกิดขึ้นวิธีการแก้ปัญหาคือการลบคำสั่ง adb จาก terminal ด้วยตนเองและการตั้งค่าเส้นทาง adb ในตัวแปรสภาพแวดล้อมใน ubantu ชี้ไปที่ sdk / platform-tools แล้วมันทำงาน
vikas kumar

คำตอบ:


263

ขอบคุณ@jowettฉันได้แก้ไขปัญหาเดียวกันแล้วทำตามขั้นตอนเหล่านี้

ขั้นตอนที่ 1: CTRL + Shift+ Escเพื่อเปิดตัวจัดการงานซึ่งมีกระบวนการ adb.exe และจบ (kill) กระบวนการนั้น

ขั้นตอนที่ 2: ตอนนี้ปิด eclipse ซึ่งกำลังทำงานบนคอมพิวเตอร์ของฉัน

ขั้นตอนที่ 3: อีกครั้งรีสตาร์ทคราสแล้วแก้ไขปัญหานั้น


สำหรับผู้ที่ใช้ OS X

killall adb

สำหรับผู้ที่ใช้ Windows

adb kill-server

ควรทำเคล็ดลับ


40

ฉันพบปัญหาเดียวกันแม้ว่าฉันจะไม่ได้ทำสิ่งนี้ อะไรก็ตามที่ฉันหาเบาะแสและแก้ไขในที่สุด

เมื่อฉันเปิดตัวจัดการ SDK และ AVD แต่พบว่ารุ่น AVD (2.3.3) ไม่เหมือนกันกับ android lib เวอร์ชัน (2.3) ดังนั้นฉันจึงสร้าง AVD ใหม่ด้วย 2.3

ฉันแก้ไขตามขั้นตอนต่อไปนี้: 1. เปิดตัวจัดการงานของ windows และฆ่ากระบวนการ adb.exe 2. ปิดคราสและเริ่มต้นใหม่ จากนั้นก็ใช้งานได้

หวังว่ามันจะช่วย


35

อาการเหล่านี้เกิดขึ้นหากคุณใช้ Genymotion emulator (บน Windows หรือ Linux) ในเวลาเดียวกันกับ Android Studio:

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

Genymotion มีสำเนาของตัวเองadbซึ่งรบกวนหนึ่งชุดที่รวมอยู่ใน Android SDK

วิธีที่ง่ายที่สุดในการแก้ไขดูเหมือนว่าจะอัปเดตการตั้งค่า Genymotion ของคุณเพื่อให้ใช้ ADB เดียวกันกับ Android SDK ของคุณ:

การตั้งค่า genymotion ADB

เพียงตรวจสอบตัวเลือก "ใช้เครื่องมือ SDK ของ Android ที่กำหนดเอง" และป้อนตำแหน่งที่คุณต้องการ


ใช้งานได้สำหรับฉันหลังจากอัปเดต Android Studio เป็น 2.1.2
Noel Bautista

35

ADB adb_usb.iniมักจะล้มเหลวถ้ามีการขึ้นบรรทัดใหม่ใน ลบออกรีสตาร์ทและที่มักจะแก้ปัญหา (อย่างน้อยสำหรับฉันแล้ว)


ในขณะที่พยายามแก้ปัญหาด้วย Kindle Fire ต้องการสร้างรายการในไฟล์นี้ ~ / .android / adb_usb.ini แต่เพิ่มบรรทัดว่างสองสามบรรทัดโดยไม่รู้ตัว เอาออกแล้ว ได้รับการแก้ไขแล้วขอบคุณ
Thiru

35

พรอมต์คำสั่ง (cmd.exe):

netstat -aon | findstr 5037

ค้นหารหัสกระบวนการของ 0.0.0.0:

ป้อนคำอธิบายภาพที่นี่

ตรวจสอบให้แน่ใจว่าเป็น adb.exe:

tasklist | findstr 1980

ป้อนคำอธิบายภาพที่นี่

ฆ่ากระบวนการนี้:

taskkill /f /t /im adb.exe

ป้อนคำอธิบายภาพที่นี่

รับ ADB กลับสู่ปกติ:

ป้อนคำอธิบายภาพที่นี่

เครดิต: บล็อกโพสต์ * เซิร์ฟเวอร์ Android ADB ไม่ได้ ACK ไม่สามารถเริ่มดีมอน *


ด้านของฉันคือ tfadb.exe หลังจากฆ่ามันใช้งานได้แล้วขอบคุณ
BobGao

ในกรณีของฉัน svchost.exe ใช้พอร์ต หลังจากฆ่ามันมันเริ่มต้นได้สำเร็จ
ranka47

13

หากคุณใช้แอปพลิเคชั่นการซิงค์สำหรับอุปกรณ์อาจเป็นเพราะมีแอพอื่นที่ใช้5037พอร์ตเดียวกัน ปิดบริการทั้งหมดที่ทำงานบนพอร์ต5037และลองเริ่ม ADB

ในการตรวจสอบว่าแอปพลิเคชันใดใช้พอร์ต 5037 หรือไม่ให้ใช้สิ่งนี้:

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

รับ PID ของแอปพลิเคชัน

ใช้Process Explorerเพื่อค้นหากระบวนการและออกจากมัน

ตอนนี้ใช้adb start-serverหรือadb get-stateเพื่อเริ่ม / ตรวจสอบสถานะเซิร์ฟเวอร์ ADB

ฉันประสบปัญหาเมื่อฉันใช้แอปพลิเคชัน Snappea / Wandoujia Sync


ขอบคุณ! svchost.exe ใช้พอร์ตนั้นด้วยเหตุผลบางอย่างในทันที
จาค็อบ L

ฉันไม่ทราบว่าจะแก้ไขเมื่อใด แต่เป็นความอัปยศที่จะไม่แก้ไข
Dejan

8

ฉันทำให้เกิดปัญหานี้ด้วยการป้อนบรรทัดว่างพิเศษในตอนท้ายของ ~ / .android / adb_usb.ini

(การลบบรรทัดว่างพิเศษเพื่อแก้ไขปัญหา)


แก้ไขปัญหาที่คล้ายกันโดยลบบรรทัดว่างเปล่าทั้งหมด
Pavel

2
ฉันมีปัญหาเดียวกันเพราะฉันเพิ่มหนึ่งบรรทัดว่างท้ายเมื่อป้อนบรรทัด Kindle Fire ฉันลบบรรทัดว่างและ adb รีสตาร์ทโดยไม่มีปัญหา ขอบคุณ
เจอโรม Mouneyrac

7

เราสามารถแก้ปัญหานี้ได้อย่างง่ายดาย

  1. เปิดพรอมต์คำสั่งและทำ cd <platform-tools directory>
  2. เรียกใช้คำสั่ง adb kill-server
  3. เปิดตัวจัดการงานของ Windows และตรวจสอบว่าadbยังทำงานอยู่หรือไม่ ถ้าเป็นก็แค่ฆ่าadb.exe
  4. เรียกใช้คำสั่งadb start-serverในพร้อมท์คำสั่ง

ป้อนคำอธิบายภาพที่นี่


ไม่จำเป็นต้องรีสตาร์ท Eclipse! :)
TWiStErRob

5

ฉันได้แก้ไขคำถามแรกของฉัน: เปิด Eclipse เปิดตัวจัดการ SDK และเลือกอุปกรณ์ที่จะเปิด

หรือคุณสามารถเปิดไดเรกทอรี SDK เปิดตัวจัดการ SDK แล้วเลือกอุปกรณ์ที่จะเปิด

2: ปิด Eclipse แล้วเปิด


5

ตรวจสอบให้แน่ใจว่าการดีบัก USB บนโทรศัพท์ของคุณเปิดอยู่ ADB kill-server และ ADB start-server ไม่ใช่ปัญหา

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

ฉันได้รับการโหวตคำตอบสำหรับคำถามนี้แล้วที่นี่ แต่ในกรณีที่มีคนสงสัยคุณไม่จำเป็นต้องรีสตาร์ท Eclipse เพื่อให้ ADB ทำงานอีกครั้ง เพียงแค่เปิดเปลือกและเรียกใช้คำสั่ง:

adb start-server

หากคุณยังไม่ได้กำหนดเส้นทางไปยัง ADB ในคุณสมบัติของระบบของคุณคุณต้องไปที่ไดเรกทอรีที่มี ADB อยู่ก่อน (ใน Android \ android-sdk \ platform-tools .... ฉันใช้ Windows ฉันไม่ได้ใช้ ' ไม่รู้ว่าคน Mac ทำอะไรกัน)


2
ไม่เป็นไร ฉันได้รับข้อผิดพลาดจาก command line เช่นกัน
IgorGanapolsky

ฉันไม่พบวิธีที่จะทำบน Mac การบังคับให้ออกจาก ADB ไม่ได้ช่วยฉันจึงต้องรีสตาร์ทคอมพิวเตอร์ทั้งหมด จากนั้นก็ใช้งานได้อีกครั้ง
Marcel Bro

2

วิ่งไปที่ sysinternals.com และรับ TCPVIEW และ PROCESS EXPLORER หากคุณยังไม่ได้ติดตั้ง

ด้วยเหตุผลบางอย่าง ADB daemon จะยกเลิกก่อนที่การแลกเปลี่ยนซ็อกเก็ตปิดจะเสร็จสมบูรณ์ หากคุณเรียกใช้ (จากพรอมต์คำสั่ง) "NETSTAT -o" คุณจะเห็นซ็อกเก็ต (โดยทั่วไปคือ 5037) ในสถานะ CLOSE_WAIT และหมายเลขกระบวนการที่เป็นเจ้าของ Process Explorer จะไม่แสดง ID กระบวนการนั้น (daemon ถูกยกเลิก) และกระบวนการที่เรียกว่า adb.exe (ซึ่งเปิดซ็อกเก็ต) จะหายไป (หากพบ adb.exe ให้ลองฆ่าภารกิจและดูว่ามีอะไรใหม่บ้างหรือไม่)

ใช้ TCPVIEW ค้นหาซ็อกเก็ตที่หยุดทำงาน คอลัมน์ชื่อกระบวนการจะแสดงกระบวนการที่เกี่ยวข้องไม่พบ คลิกขวาและเลือก "ปิดการเชื่อมต่อ" ซ็อกเก็ตปิดตอนนี้และ adb daemon ควรเริ่มได้


เป็นประโยชน์ นอกจากนี้ใน Process Explorer หากคุณเห็น adb.exe ทำงานด้วยคอลัมน์เส้นทางที่แสดง [ข้อผิดพลาดในการเปิดกระบวนการ] นั่นอาจเป็นสาเหตุของความผิดพลาด
Samik R

2

ฉันมีปัญหาที่คล้ายกัน การฆ่าอินสแตนซ์ที่มีอยู่ของกระบวนการ ADB จากตัวจัดการงานไม่ทำงานสำหรับฉัน

เมื่อไม่กี่วันก่อนฉันพยายามติดตั้ง MIPS SDK และ ADT-17 ก่อนหน้านี้และ Eclipse ให้ข้อผิดพลาดแก่ฉันและฉันไม่ได้แก้ไขปัญหานั้น

ดังนั้นตอนนี้เมื่อฉันได้รับเซิร์ฟเวอร์ ADBนี้ไม่ได้ ACK ไม่สามารถเริ่มภูต ...ปัญหาฉันเรียกใช้งาน 'ตรวจหาการปรับปรุง' ในรายการเมนูEclipse Help ไม่มีการอัปเดต แต่อย่างน้อยข้อผิดพลาด 'เซิร์ฟเวอร์ ADB ไม่ได้ ACK' หายไป

ฉันหวังว่านี่อาจช่วยได้ในบางกรณี


1

พิมพ์./adb nodaemon serverเทอร์มินัล

หากมันกลับInvalid content in adb_usb.iniมาแสดงว่ามีปัญหากับadb_usb.iniไฟล์ของคุณใน.androidโฟลเดอร์

เปิดadb_usb.iniและลบเนื้อหา จากนั้นรีสตาร์ทเซิร์ฟเวอร์ ... มันใช้งานได้สำหรับฉัน


1

ตรวจสอบเส้นทางของไดเรกทอรี Android มันไม่ควรมีช่องว่าง ฯลฯ

ตรวจสอบด้วยว่าปลั๊กอินนั้นได้รับการกำหนดค่าอย่างเหมาะสมใน Eclipse → Preferencesหรือไม่

ในกรณีของฉันฉันตรวจสอบทุกอย่างหลายครั้ง แต่ก็ยังไม่ทำงาน ฉันกำลังจะติดตั้งใหม่ทุกอย่าง แต่ฉันมาหาคำตอบในเว็บไซต์นี้ (โพสต์อื่น ๆ )

ตรวจสอบโปรแกรมป้องกันไวรัสของคุณ มันอาจจะบล็อกพอร์ตของadb.exeหรือโปรแกรมจำลอง ฯลฯ ที่แก้ไขปัญหาในกรณีของฉัน


1

นอกจากโซลูชันของ@Bastet :

0.0.0.0:0จริงๆแล้วเราต้องฆ่าขั้นตอนโดยใช้ที่อยู่ นั่นเป็นสาเหตุที่คนส่วนใหญ่ที่ฆ่าadb.exeจาก Task Manager ทำงาน (ในกรณีของฉันฉันไม่สามารถมองเห็นได้แม้ใน Task Manager)

ต่อไปนี้@Bastetขั้นตอนที่ผมพบว่าบางกระบวนการอื่น ๆ ที่ใช้อยู่นี้ ฉันเดินไปข้างหน้าจะฆ่ามันและมันทำให้ผมเป็นACCESS DENIEDError

ดังนั้นการใช้tasklist | findstr ****ฉันพบชื่อของกระบวนการและฆ่ามันจากตัวจัดการงาน

หลังจากนั้นก็เริ่มทำงาน

ในกรณีของฉันbas_daemonและbas_helperได้ใช้อยู่นี้ทั้งสองซึ่งสอดคล้องกับMOBOROBO


0

ผมมีปัญหาเหมือนกัน. แต่adbแล็ปท็อปของฉันไม่มีกระบวนการ ฉันเพิ่งออกจากระบบและเข้าสู่บัญชีของฉันและมันได้รับการแก้ไข ...

ADB สามารถเริ่มต้นจากหน้าต่าง CMD หลังจากนั้น


0

วิธีที่ดีที่สุดและมีประสิทธิภาพสูงสุดโดยไม่ต้องรีสตาร์ทอุปกรณ์หรือซอฟต์แวร์ใด ๆ คือ:

รันสิ่งต่อไปนี้:

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

และอีกสิ่งหนึ่ง .. ADB เป็นสิ่งที่พึ่งพาตนเอง คุณไม่สามารถทำอะไรได้จนกว่าจะต้องการทำงาน มีอีกวิธีหนึ่งที่ฉันค้นพบคือ: ปล่อยให้อุปกรณ์เชื่อมต่อประมาณ 5-6 นาทีแล้วรอ ในไม่ช้าอุปกรณ์ก็จะเชื่อมต่อและพยายามที่จะเปิด


0

สิ่งนี้ไม่ได้เกิดขึ้นกับฉันจนกว่าฉันจะรูทโทรศัพท์Samsung Galaxy S IIIของฉัน(ทำตามคำแนะนำในฟอรัม xda-developer)

มันเกิดขึ้นแบบสุ่ม แต่มันเกิดขึ้นอย่างแน่นอนในขณะที่รัน Eclipse

ฆ่ากระบวนการ adb.exe และเริ่มต้นใหม่แก้ปัญหาได้


0

ดูแอนติไวรัสหรือไฟร์วอลล์ ... ปิดกั้นไม่ให้คุณเข้าถึง ... ในโปรแกรมป้องกันไวรัส k7 ฉันปิดการตรวจสอบระบบและมันใช้งานได้สำหรับฉัน ...


-1

ฉันต้องอนุญาต adb.exe เพื่อเข้าถึงเครือข่ายของฉันในไฟร์วอลล์ของฉัน


1
ฉันใช้ไฟร์วอลล์นี้: sphinx-soft.com/de/Vista/order.htmlสิ่งที่ฉันทำคือเปลี่ยนกฎของ adb.exe เป็นallow all
Terel

-1

การฆ่าคราสและการรีบูตเครื่องไม่ได้ช่วยฉัน ฉันเพิ่มเครื่องมือ Android ลงในตัวแปร PATH เริ่มตัวจัดการงานและฆ่า adb.exe

ฉันรีสตาร์ท Eclipse แล้วก็ใช้งานได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.