# BlueStacks ADB not working: sửa lỗi ADB giả lập Android

> Sửa lỗi adb not working, device not found và offline cho BlueStacks, LDPlayer, MuMu, MEmu và Nox trong Macro Automation Studio, kèm lệnh adb để tự kiểm tra.

Source: https://automationmacro.com/vi/docs/adb-troubleshooting (Thiết bị, updated 2026-09-05)

Mọi thiết bị local trong Macro Automation Studio (MAS) là một kết nối adb tới `127.0.0.1:<port>`. Khi BlueStacks ADB not working, tức adb không hoạt động và thiết bị không khởi động được, nguyên nhân gần như luôn là một trong vài vấn đề quen thuộc, và cùng cách sửa áp dụng cho BlueStacks, LDPlayer, MuMu Player, MEmu và Nox. Trang này liệt kê chúng kèm các lệnh bạn có thể tự chạy.

## Cách MAS dùng adb

Biết trình tự sẽ giúp bạn đọc hiểu lỗi. Khi bạn nhấn **Bắt đầu** trên một thiết bị, MAS:

1. Chạy `adb start-server` bằng bản adb riêng của nó.
2. Liệt kê thiết bị bằng `adb devices -l`. Nếu cổng của bạn đã có trong danh sách, nó ngắt kết nối trước.
3. Chạy `adb connect 127.0.0.1:<port>` và đọc kết quả. Bất kỳ câu nào trong "cannot connect", "failed to connect", "unable to connect", "connection refused" hoặc "bad port" đều làm thiết bị thất bại với "unable to connect to device".
4. Gửi mọi lệnh sau đó dưới dạng `adb -s 127.0.0.1:<port> shell ...`: chạm, vuốt, `screencap` để chụp màn hình, `wm size` để lấy kích thước màn hình.
5. Chạy `adb kill-server` khi ứng dụng đóng.

Trên Windows, MAS mang adb tại `C:\ProgramData\MacroAutomationStudio\3rdparty\platform-tools`. Trên Mac, adb nằm trong gói ứng dụng, với PATH của bạn và Homebrew làm phương án dự phòng.

## Tự kiểm tra kết nối

Mở terminal và chạy đúng các bước MAS chạy. Dùng cổng từ cài đặt của giả lập.

```bash
adb devices
adb connect 127.0.0.1:5555
adb -s 127.0.0.1:5555 shell wm size
```

Một giả lập khỏe mạnh trả lời dòng cuối bằng `Physical size: 540x960` hoặc tương tự. Khi kết quả trông sai, đặt lại máy chủ và thử lại:

```bash
adb kill-server
adb start-server
adb connect 127.0.0.1:5555
```

Tìm adb ở đâu: các giả lập mang bản riêng của chúng (Nox đặt tên `nox_adb.exe` trong thư mục `bin`; MuMu Player giữ `adb_server.exe` trong thư mục cài), MAS mang một bản trên Windows, và trên Mac `brew install android-platform-tools` cho bạn bản chuẩn.

## Cài đặt ADB nằm ở đâu

| Giả lập | Bật ADB | Cổng instance đầu tiên | Các instance khác |
|---|---|---|---|
| BlueStacks 5 | **Cài đặt**, tab **Nâng cao**, bật **Android Debug Bridge** | 5555, hoặc cổng khác khi 5555 bị chiếm | Mỗi instance có cổng riêng; MAS chấp nhận 5555 đến 8500 |
| LDPlayer | **Cài đặt**, **Cài đặt khác**, đặt **ADB debugging** thành **Mở kết nối cục bộ**, nhấn **Lưu cài đặt**, khởi động lại instance | 5555 | 5557, 5559, và tiếp tục; MAS chấp nhận cổng lẻ tới 5599 |
| MuMu Player | Cổng hiển thị trong **Cài đặt**, **Cổng ADB**, hoặc trong **Chẩn đoán thiết bị** | 16384 (bản cũ: 7555) | Mỗi instance cộng 32: 16416, 16448, và tiếp tục |
| MEmu | Bật sẵn; cổng máy chủ ánh xạ tới cổng Android 5555 | 21503 | 21513, 21523, và tiếp tục |
| Nox | Bật sẵn; kết nối bằng `nox_adb.exe connect 127.0.0.1:62001` từ thư mục `bin` | 62001 | Các cổng trên 62001 tới 63000 |

Trang của nhà cung cấp: [BlueStacks](https://support.bluestacks.com/hc/en-us/articles/23925869130381-How-to-enable-Android-Debug-Bridge-on-BlueStacks-5), [LDPlayer](https://www.ldplayer.net/blog/how-to-solve-locked-screen.html), [MuMu Player](https://www.mumuplayer.com/help/win/connect-adb.html), [MEmu](https://www.memuplay.com/blog/how-to-manipulate-memu-thru-command-line.html), [Nox](https://www.bignox.com/blog/how-to-connect-android-studio-with-nox-app-player-for-android-development-and-debug/).

## BlueStacks ADB not working và các lỗi giả lập khác

### ADB not working

Không có gì kết nối: danh sách **Cổng** trong MAS trống và `adb connect` báo "cannot connect" hoặc "connection refused".

Nguyên nhân: ADB đang tắt trong giả lập, hoặc instance chưa khởi động xong. BlueStacks và LDPlayer xuất xưởng với ADB tắt.

- Bật ADB theo bảng trên và khởi động lại instance ở những chỗ nhà cung cấp yêu cầu.
- Chờ tới khi màn hình chính Android lên, rồi nhấn **Làm mới** trong **Thêm thiết bị mới**.
- Chạy `adb connect 127.0.0.1:<port>` trong terminal. "connected to 127.0.0.1:<port>" nghĩa là MAS cũng sẽ kết nối được.
- Nếu một công cụ bảo mật chặn kết nối cục bộ, cho phép adb và giả lập đi qua nó.

### ADB device not found

Thẻ thiết bị kết thúc ở Lỗi và nhật ký ghi "unable to connect to device", hoặc mã ném `DeviceNotConnectedError` ở lời gọi đầu tiên.

Nguyên nhân: cổng không thuộc về gì cả, giả lập đã đóng, hoặc kết nối rớt sau khi lần chạy bắt đầu.

- So cổng trên thẻ thiết bị với cổng trong cài đặt của giả lập. Sửa bằng **Sửa thiết bị**.
- Chạy `adb devices`. Nếu thiếu mục, chạy `adb connect 127.0.0.1:<port>` và đọc câu trả lời.
- Khởi động lại instance giả lập, rồi nhấn **Bắt đầu** lại. MAS kết nối lại từ đầu ở mỗi lần bắt đầu.
- Nếu bạn khởi động MAS trước giả lập, nhấn **Làm mới** để danh sách cổng được cập nhật.

### Thiết bị hiển thị offline

`adb devices` liệt kê `127.0.0.1:<port>  offline` và lệnh bị treo hoặc không trả về gì.

Nguyên nhân: máy chủ adb giữ một mục cũ, hai bản adb khác phiên bản đang tranh nhau máy chủ, hoặc giả lập vẫn đang khởi động.

- Chạy `adb kill-server`, rồi `adb connect 127.0.0.1:<port>` lại.
- Đóng các công cụ khác tự khởi động máy chủ adb (Android Studio, bảng điều khiển của giả lập khác) trong lúc MAS chạy.
- Khởi động lại instance giả lập. Lời khuyên của chính Nox cho "null or offline" cũng vậy: khởi động lại Nox và kết nối lại.
- Chờ khởi động xong; một instance vẫn đang tải trả lời `offline`.

### Cổng ADB sai hoặc đã đổi

Thiết bị hôm qua chạy được, hôm nay thất bại với cùng cài đặt.

Nguyên nhân: giả lập phát cổng khi instance khởi động, và việc tạo, nhân bản hoặc xóa instance làm cổng dịch chuyển. BlueStacks chuyển sang cổng khác khi 5555 bận.

- Đọc cổng hiện tại từ cài đặt của giả lập hoặc từ `adb devices` sau khi instance khởi động.
- Trong MAS, mở thẻ thiết bị, nhấn **Sửa thiết bị**, đặt cổng mới và lưu.
- Để ổn định, giữ các instance theo cùng thứ tự trong trình quản lý đa nhiệm của giả lập và tránh xóa instance đầu tiên.

### Nhiều instance

Chỉ instance đầu tiên kết nối được, hoặc MAS báo "Port is already in use".

Nguyên nhân: mỗi instance cần cổng riêng và mục thiết bị riêng; một cổng chỉ thêm được một lần.

- Thêm một thiết bị cho mỗi instance, mỗi cái với cổng của instance đó. Các dải nằm trong bảng trên: LDPlayer và MuMu Player dùng cổng lẻ 5555, 5557, 5559; MuMu Player 12 cộng 32 mỗi instance; MEmu cộng 10; Nox đếm lên từ 62001.
- Đặt tên thiết bị trùng với tên instance để các thẻ dễ phân biệt.
- Khởi động từng instance một và nhấn **Làm mới** để mỗi cổng mới xuất hiện trong danh sách.
- Cùng macro, khác tài khoản: dùng hồ sơ cài đặt để mỗi thiết bị đi theo tham số riêng. Xem [Nhóm thiết bị](/docs/device-groups).

### adb trên Mac

MAS hiển thị "ADB executable not found. Please install ADB using your package manager".

Nguyên nhân: adb bên trong gói ứng dụng không chạy được và không tìm thấy gì trên PATH của bạn hay trong `/opt/homebrew`.

- Cài bản chuẩn bằng `brew install android-platform-tools`, rồi khởi động lại MAS.
- Kiểm tra bằng `which adb` và `adb version` trong Terminal. MAS tìm trong gói ứng dụng, rồi trên PATH, rồi trong `/opt/homebrew/bin` và `/usr/local/bin`.
- Trên Mac, giả lập cũng phải chạy trên Mac; MAS luôn quay số `127.0.0.1`.
- Nếu bản giả lập Mac của bạn hoàn toàn không có ADB, một [thiết bị cloud](/cloud-devices) chạy mà không cần adb cục bộ nào.

### MAS quét những cổng ADB giả lập nào

MAS dựng danh sách **Cổng** từ các tiến trình đang chạy, không phải từ `adb devices`. Nó chỉ giữ một cổng khi cả tên tiến trình lẫn dải cổng đều khớp:

| Giả lập | Tên tiến trình | Cổng được giữ |
|---|---|---|
| BlueStacks | `HD-Player`, `BlueStacks` | 5555 đến 8500 |
| LDPlayer | `LdVBoxHeadless`, `Ld9BoxHeadless`, `dnplayer`, `LDPlayer`, `VBoxNetNAT` | Cổng lẻ 5555 đến 5599 |
| Nox | `NoxVMHandle` | 62001 đến 63000 |
| MEmu | `MEmuHeadless`, `MEmuHyper` | 21503 và mọi cổng kết thúc bằng 3 tới 29993 |
| MuMu Player | `NemuHeadless`, `MuMu` | Cổng lẻ 5555 đến 5599, 7555, 16384 đến 16576, 26624 đến 27264 |

Chỉ các cổng gắn với `127.0.0.1`, `0.0.0.0` hoặc mọi giao diện mới được xét. Một cổng ngoài các quy tắc này không bao giờ xuất hiện trong danh sách, nhưng **Cổng tùy chỉnh** chấp nhận mọi giá trị từ 1024 đến 65535, nên một giả lập MAS không biết vẫn thêm được bằng tay.

## Vẫn kẹt

Thu thập **Nhật ký** của thẻ thiết bị (nút **Lưu** ghi ra tệp), kết quả của `adb devices`, và tên cùng phiên bản giả lập, rồi hỏi trong [Discord](https://discord.gg/macroautomationstudio) hoặc gửi email tới [support@automationmacro.com](mailto:support@automationmacro.com). Các vấn đề chung của ứng dụng nằm ở trang [Khắc phục sự cố](/docs/troubleshooting).
