ADB (Android Debug Bridge) là gì?
ADB là công cụ dòng lệnh cho phép giao tiếp giữa máy tính và thiết bị Android (điện thoại, tablet, emulator) qua USB/Wi-Fi. Dùng cho: Cài app (APK), debug app, logcat, shell truy cập file hệ thống, root/unroot, flash firmware, scrcpy...
Lỗi "error: device not found" hoặc "no devices/emulators found" nghĩa là **`adb devices` không liệt kê thiết bị nào** → Máy tính **không nhận diện** thiết bị Android.
4 Nguyên nhân phổ biến & Cách khắc phục
1. Driver ADB Interface lỗi / cũ / thiếu (Phổ biến nhất)
Windows cần driver **Android ADB Interface** / **Android Composite ADB Interface** / **Google USB Driver** / **OEM USB Driver** (Samsung, Xiaomi, Oppo, Vivo, Realme, OnePlus...) để nhận thiết bị.
Cách sửa tự động (Khuyên dùng):
- Tải & cài **Driver Booster** (hoặc Snappy Driver Installer Origin).
- Chạy **Scan**.
- Tìm **Android ADB Interface** / **Android Device** / **Android Composite ADB Interface** / **Tên OEM (VD: SAMSUNG Mobile USB Composite Device)** → **Update**.
- Khởi động lại máy tính.
Cách sửa thủ công:
- Tải **Google USB Driver** (trong Android SDK Manager) hoặc **OEM USB Driver** từ trang web hãng (Samsung USB Driver, Xiaomi Mi USB Driver...).
- Device Manager (Win+X → M) → Chuột phải thiết bị lỗi (dấu chấm than vàng, hoặc "Android Device" / "ADB Interface") → **Update driver** → Browse my computer → Chọn folder driver đã giải nén → Next.
2. Chưa bật USB Debugging trên điện thoại
- **Settings (Cài đặt)** → **About phone (Giới thiệu về điện thoại)** → Tap **Build number (Số bản dựng)** **7 lần** → "You are now a developer!".
- Quay lại **Settings** → **System / Additional settings** → **Developer options (Tùy chọn nhà phát triển)**.
- Bật **USB debugging (Gỡ lỗi USB)** → **OK** xác nhận.
- Quan trọng: Khi cắm USB vào PC, màn hình điện thoại sẽ hiện popup **"Allow USB debugging?"** → Tích **Always allow from this computer** → **Allow**.
3. Sai chế độ kết nối USB (USB Connection Mode)
Mặc định nhiều dòng điện thoại (đặc biệt Samsung, Xiaomi) cắm USB chỉ **Charge only (Chỉ sạc)** → Không bật ADB interface.
- Cắm USB → Kéo xuống **Notification shade (Thanh thông báo)**.
- Tìm dòng **Charging this device via USB / USB charging / USB controlled by** → Tap vào.
- Chọn **File Transfer / Transferring files / MTP (Media Transfer Protocol)**.
(Một số dòng chọn PTP - Picture Transfer Protocol cũng được, nhưng MTP chuẩn hơn). - Chạy lại `adb devices` trên PC.
4. ADB Server treo / Conflict port / Multiple ADB versions
ADB Server (port 5037) bị treo, hoặc có nhiều bản ADB (Platform-tools, Android Studio, Genymotion, Nox, BlueStacks, LDPlayer...) chạy cùng lúc xung đột.
Cách Reset ADB Server (Dòng lệnh):
adb kill-server
adb start-server
adb devices
Nếu vẫn lỗi:
- Kiểm tra port 5037: `netstat -ano | findstr 5037` → Kill process đang chiếm (Task Manager / `taskkill /PID
/F`). - Đảm bảo **CHỈ MỘT** bản `adb.exe` trong PATH (ưu tiên Platform-tools mới nhất). Gỡ emulator/thư mục cũ khỏi PATH.
- Khởi động lại cả PC và Điện thoại.
Kiểm tra ADB đã hoạt động
C:\platform-tools> adb devices
List of devices attached
XXXXXXXXXXXXXX device <-- OK: Serial number + "device"
- `device` = Đã kết nối, authorized, sẵn sàng làm việc.
- `unauthorized` = Chưa allow USB debugging trên màn hình điện thoại.
- `offline` = Kết nối gián đoạn / ADB version mismatch.
- Rỗng = Chưa nhận thiết bị (xem lại 4 nguyên nhân trên).
Mẹo nâng cao
- ADB over Wi-Fi (Android 11+): Settings → Developer options → Wireless debugging → Pair with pairing code / QR code. Không cần cáp.
- Cáp USB chất lượng: Dùng cáp **hỗ trợ truyền dữ liệu (Data cable)**, không phải cáp sạc only. Cáp gốc là tốt nhất.
- Cổng USB: Cắm trực tiếp cổng USB trên mainboard (back I/O), tránh Hub, cổng front case, cổng màn hình.
- Windows 11/10: Đảm bảo không bật "Memory Integrity / Core Isolation" (Virtualization-based Security) chặn driver không ký (Test signing mode) - hiếm khi gặp với driver OEM/Google đã ký.
Tóm tắt quy trình Troubleshooting nhanh
- `adb devices` → Xem kết quả.
- Rỗng / `unauthorized` / `offline` → **Bật USB Debugging + Chọn MTP trên điện thoại** (Bước quan trọng nhất, 80% lỗi do đây).
- Vẫn lỗi → **Update Driver ADB Interface** (Driver Booster / OEM Driver).
- Vẫn lỗi → **Reset ADB Server** (`kill-server`/`start-server`), kiểm tra port 5037.
- Vẫn lỗi → **Đổi cáp USB, đổi cổng USB, thử máy tính khác** (loại trừ lỗi phần cứng).
- Vẫn lỗi → **Reinstall Platform-tools mới nhất**, dọn dẹp PATH, gỡ emulator không dùng.