Lỗi ADB trên điện thoại: Nguyên nhân và cách khắc phục chi tiết
ADB (Android Debug Bridge) là một công cụ dòng lệnh mạnh mẽ cho phép bạn giao tiếp với thiết bị Android từ máy tính. Tuy nhiên, trong quá trình sử dụng, bạn có thể gặp phải nhiều lỗi khác nhau. Dưới đây là mô tả chi tiết về các nguyên nhân phổ biến và cách khắc phục lỗi ADB trên điện thoại:
1. Nguyên nhân phổ biến:
Chưa cài đặt ADB hoặc cài đặt sai:
Nguyên nhân:
Driver ADB không được cài đặt hoặc cài đặt không đúng cách.
Triệu chứng:
Khi bạn chạy lệnh `adb devices`, nó không hiển thị thiết bị của bạn, hoặc hiển thị “unauthorized” hoặc “offline”.
Cách khắc phục:
Tải và cài đặt ADB:
Tải Android SDK Platform Tools từ trang web chính thức của Google: [https://developer.android.com/studio/releases/platform-tools](https://developer.android.com/studio/releases/platform-tools). Giải nén vào một thư mục dễ nhớ.
Cài đặt Driver USB:
Windows:
Tìm và tải driver USB phù hợp với nhà sản xuất điện thoại của bạn từ trang web chính thức của nhà sản xuất. Cài đặt driver này. (Ví dụ: Driver Samsung, Driver Xiaomi, Driver Google Pixel…)
Linux:
Chạy lệnh sau trong terminal (cần quyền root):
“`bash
sudo apt-get install android-tools-adb android-tools-fastboot
“`
macOS:
ADB thường hoạt động mà không cần driver bổ sung, nhưng nếu gặp vấn đề, hãy thử cài đặt Homebrew và sau đó cài đặt ADB thông qua Homebrew:
“`bash
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
brew install android-platform-tools
“`
Kiểm tra lại:
Sau khi cài đặt driver, hãy thử lại lệnh `adb devices` để kiểm tra xem thiết bị đã được nhận diện chưa.
Chưa bật chế độ USB Debugging (Gỡ lỗi USB):
Nguyên nhân:
Chế độ USB Debugging chưa được kích hoạt trên điện thoại. Đây là điều kiện tiên quyết để ADB có thể giao tiếp với thiết bị.
Triệu chứng:
Khi bạn chạy `adb devices`, thiết bị có thể hiển thị “unauthorized”.
Cách khắc phục:
Bật chế độ nhà phát triển (Developer options):
Vào
Cài đặt
(Settings) >
Thông tin điện thoại
(About phone).
Tìm
Số phiên bản
(Build number) và chạm vào nó liên tục (7-10 lần) cho đến khi bạn thấy thông báo “Bạn đã là nhà phát triển!” (You are now a developer!).
Bật USB Debugging:
Quay lại
Cài đặt
, bạn sẽ thấy mục
Tùy chọn nhà phát triển
(Developer options) mới.
Mở
Tùy chọn nhà phát triển
và bật
Gỡ lỗi USB
(USB Debugging).
Cho phép gỡ lỗi USB:
Khi kết nối điện thoại với máy tính và chạy lệnh ADB, bạn sẽ thấy một hộp thoại trên điện thoại hỏi bạn có cho phép gỡ lỗi USB từ máy tính này không. Hãy
tích vào “Luôn cho phép từ máy tính này”
(Always allow from this computer) và nhấn
OK
.
Cáp USB không tốt hoặc kết nối lỏng lẻo:
Nguyên nhân:
Cáp USB bị hỏng, chất lượng kém, hoặc kết nối không chắc chắn.
Triệu chứng:
ADB không thể kết nối, kết nối chập chờn, hoặc báo lỗi kết nối.
Cách khắc phục:
Sử dụng cáp USB khác, tốt hơn.
Đảm bảo cáp được cắm chắc chắn vào cả điện thoại và máy tính.
Thử các cổng USB khác trên máy tính.
Conflict cổng ADB hoặc cổng ADB bị chiếm dụng:
Nguyên nhân:
Một ứng dụng khác (ví dụ: trình giả lập Android khác) đang sử dụng cổng 5037 mà ADB cần.
Triệu chứng:
ADB không kết nối được, hoặc báo lỗi liên quan đến cổng.
Cách khắc phục:
Tìm và tắt các ứng dụng đang sử dụng cổng 5037:
Sử dụng trình quản lý tác vụ (Task Manager trên Windows, Activity Monitor trên macOS) để tìm và đóng các ứng dụng nghi ngờ.
Khởi động lại ADB Server:
“`bash
adb kill-server
adb start-server
“`
Phiên bản ADB không tương thích:
Nguyên nhân:
Phiên bản ADB trên máy tính và phiên bản ADB trên điện thoại (thông qua driver) không tương thích với nhau.
Triệu chứng:
Các lệnh ADB không hoạt động, hoặc hoạt động không ổn định.
Cách khắc phục:
Đảm bảo bạn đang sử dụng phiên bản ADB mới nhất từ Android SDK Platform Tools.
Thử cập nhật driver USB cho điện thoại của bạn.
Quyền hạn (Permissions):
Nguyên nhân:
Trên một số hệ thống Linux, bạn có thể cần cấp quyền cho người dùng của bạn để truy cập thiết bị USB.
Triệu chứng:
ADB không thể kết nối với thiết bị.
Cách khắc phục:
Thêm rule udev cho thiết bị của bạn. Tạo một file `/etc/udev/rules.d/51-android.rules` (cần quyền root) với nội dung sau (thay `VENDOR_ID` bằng ID nhà cung cấp của điện thoại bạn):
“`
SUBSYSTEM==”usb”, ATTR{idVendor}==”VENDOR_ID”, MODE=”0666″, OWNER=”your_username”
“`
Để tìm `VENDOR_ID`, bạn có thể sử dụng lệnh `lsusb`. Sau khi lưu file, hãy chạy các lệnh sau:
“`bash
sudo udevadm control –reload-rules
sudo udevadm trigger
“`
Điện thoại ở chế độ sạc:
Nguyên nhân:
Điện thoại đang ở chế độ “Chỉ sạc” (Charging only).
Triệu chứng:
ADB không kết nối được.
Cách khắc phục:
Khi kết nối điện thoại với máy tính, hãy kéo thanh thông báo xuống và chọn chế độ kết nối USB là “Truyền tệp” (Transfer files) hoặc “Truyền ảnh” (Transfer photos), hoặc một chế độ tương tự cho phép truy cập dữ liệu.
2. Cách khắc phục chi tiết hơn cho các lỗi thường gặp:
Device unauthorized:
Nguyên nhân:
Bạn chưa cho phép máy tính gỡ lỗi USB trên điện thoại.
Cách khắc phục:
Rút cáp USB ra và cắm lại.
Khởi động lại ADB server (`adb kill-server` và `adb start-server`).
Kiểm tra điện thoại xem có hộp thoại yêu cầu quyền gỡ lỗi USB không. Hãy tích vào “Luôn cho phép từ máy tính này” và nhấn OK.
Nếu vẫn không được, hãy thử thu hồi ủy quyền gỡ lỗi USB trên điện thoại bằng cách vào
Tùy chọn nhà phát triển
>
Thu hồi ủy quyền gỡ lỗi USB
(Revoke USB debugging authorizations), sau đó kết nối lại điện thoại và cho phép lại.
Device offline:
Nguyên nhân:
Driver USB không được cài đặt đúng cách.
Điện thoại không được kết nối đúng cách.
Cách khắc phục:
Cài đặt hoặc cập nhật driver USB cho điện thoại.
Kiểm tra kết nối cáp USB.
Khởi động lại điện thoại.
Khởi động lại ADB server.
adb server didnt ACK; failed to start daemon; error:
Nguyên nhân:
Thường là do xung đột cổng hoặc phiên bản ADB cũ.
Cách khắc phục:
Kill ADB server và start lại: `adb kill-server` sau đó `adb start-server`.
Kiểm tra và tắt các ứng dụng có thể đang sử dụng cổng 5037.
Đảm bảo bạn đang sử dụng phiên bản ADB mới nhất.
Không tìm thấy lệnh adb:
Nguyên nhân:
Hệ thống không tìm thấy đường dẫn đến thư mục chứa file `adb.exe`.
Cách khắc phục:
Thêm thư mục chứa ADB vào biến môi trường PATH:
Windows:
Tìm kiếm “Biến môi trường” trong Windows.
Nhấp vào “Chỉnh sửa biến môi trường cho tài khoản của bạn” hoặc “Chỉnh sửa biến môi trường hệ thống”.
Trong phần “Biến người dùng” hoặc “Biến hệ thống”, tìm biến “Path” (nếu không có thì tạo mới).
Nhấp vào “Chỉnh sửa” và thêm đường dẫn đến thư mục chứa `adb.exe` (ví dụ: `C:platform-tools`).
Khởi động lại command prompt hoặc PowerShell.
Linux/macOS:
Mở file `~/.bashrc` hoặc `~/.zshrc` (tùy thuộc vào shell bạn đang sử dụng).
Thêm dòng sau vào cuối file (thay `/path/to/platform-tools` bằng đường dẫn thực tế):
“`bash
export PATH=”$PATH:/path/to/platform-tools”
“`
Lưu file và chạy lệnh `source ~/.bashrc` hoặc `source ~/.zshrc` để áp dụng thay đổi.
3. Lời khuyên chung:
Luôn sử dụng phiên bản ADB mới nhất:
Điều này giúp đảm bảo tính tương thích và sửa các lỗi đã biết.
Kiểm tra kỹ các kết nối:
Đảm bảo cáp USB hoạt động tốt và được cắm chắc chắn.
Tìm kiếm trên Google:
Nếu bạn gặp một lỗi cụ thể, hãy tìm kiếm nó trên Google. Có rất nhiều diễn đàn và bài viết trực tuyến có thể giúp bạn tìm ra giải pháp.
Thử trên máy tính khác:
Nếu có thể, hãy thử kết nối điện thoại với máy tính khác để loại trừ khả năng lỗi do máy tính gây ra.
Cập nhật hệ điều hành điện thoại:
Đôi khi, các bản cập nhật hệ điều hành có thể cải thiện khả năng tương thích với ADB.
Hy vọng hướng dẫn này giúp bạn khắc phục các lỗi ADB trên điện thoại của mình. Chúc bạn thành công!