Sửa lỗiĐăng ngày: 3 phút đọc

Lỗi adb device offline: nguyên nhân và cách khắc phục

Vì sao adb devices báo điện thoại offline khi cắm USB hay qua Wi-Fi, và các cách sửa hiệu quả, từ khởi động lại adb server đến cập nhật platform-tools.

adb devices có hiện điện thoại của bạn, nhưng kèm chữ offline thay vì device:

List of devices attached
R58M123ABC	offline

Offline nghĩa là adb server nhìn thấy điện thoại, nhưng hai bên chưa hoàn tất bước bắt tay (handshake) ADB, hoặc kết nối đã bị đứt. Các lệnh như adb shell hay adb install sẽ báo lỗi error: device offline. Dưới đây là các nguyên nhân, xếp từ thường gặp nhất đến ít gặp nhất.

1. Khởi động lại adb server

Server bị "treo" là nguyên nhân hay gặp nhất, nhất là sau khi điện thoại ngủ, khởi động lại hoặc đổi chế độ USB.

adb kill-server
adb start-server
adb devices

Sau khi khởi động lại server, rút cáp ra rồi cắm lại.

2. Mở khóa điện thoại và tìm hộp thoại xác nhận

Lần đầu kết nối với một máy tính, điện thoại hiện hộp thoại Allow USB debugging? (Cho phép gỡ lỗi USB?). Trong lúc chờ bạn xác nhận, một số phiên bản adb hiện offline thay vì unauthorized. Hãy mở khóa màn hình và chạm Cho phép. Nếu không thấy hộp thoại, vào Tùy chọn nhà phát triển, chạm Thu hồi ủy quyền gỡ lỗi USB, tắt rồi bật lại gỡ lỗi USB và kết nối lại.

3. Cập nhật platform-tools

adb client quá cũ có thể không bắt tay được với phiên bản Android mới hơn và báo offline. Kiểm tra phiên bản:

adb version

Nếu đã cũ vài năm, hãy tải Android SDK platform-tools mới nhất từ Google, và đảm bảo biến PATH không còn trỏ tới một bản cũ hơn (Android Studio, Genymotion và một số phần mềm quản lý điện thoại đi kèm adb riêng).

4. Hai chương trình tranh nhau điện thoại

Android Studio, scrcpy, ứng dụng quản lý điện thoại, trình giả lập và bộ phần mềm PC của hãng đều có thể tự khởi động adb server riêng. Các server khác phiên bản liên tục khởi động lại lẫn nhau, khiến điện thoại cứ chuyển sang offline. Hãy đóng các công cụ khác, rồi khởi động lại server như ở bước 1. Xem thêm bài sửa lỗi thiết bị busy hoặc unauthorized.

5. Cáp, cổng và chế độ USB

  • Thử một sợi cáp khác chắc chắn truyền được dữ liệu, và cắm thẳng vào cổng USB trên máy tính, không qua hub.
  • Trên một số điện thoại, đổi chế độ USB từ Chỉ sạc sang Truyền tệp trong thông báo USB giúp kết nối ổn định hơn.

6. Qua Wi-Fi: kết nối bị rớt

Điện thoại kết nối bằng adb connect sẽ chuyển sang offline khi Wi-Fi ngủ, IP thay đổi hoặc Gỡ lỗi không dây bị tắt.

adb disconnect 192.168.1.20:5555
adb connect 192.168.1.20:5555

Nếu lệnh trên báo Connection refused, nghĩa là chế độ mạng đã tắt. Xem bài sửa lỗi Connection refused.

7. Khởi động lại điện thoại

Khi không còn cách nào hiệu quả, hãy khởi động lại cả điện thoại và máy tính. Việc này xử lý adbd bị kẹt trên điện thoại và driver USB cũ trên máy tính.

ADBKit xử lý thế nào

ADBKit không dùng adb server trên máy tính của bạn. Chrome hoặc Edge giao tiếp trực tiếp với điện thoại qua WebUSB, nên chuyện lệch phiên bản server không thể làm thiết bị bị offline trong ADBKit. Tuy nhiên ADBKit cần độc quyền kết nối USB: nếu adb server của chương trình khác đang giữ điện thoại, ADBKit báo thiết bị đang bận và cho bạn biết cần đóng chương trình nào. Qua Wi-Fi, ADBKit hiển thị rõ trạng thái "connection lost" (mất kết nối) và đề xuất kết nối lại.

Nếu adb devices không hiện gì cả, xem bài adb devices không hiện thiết bị.