Trình giả lập Android-5554 ngoại tuyến


134

Tôi đang gặp vấn đề với trình giả lập-5554, nó cứ nói với tôi rằng nó đang ngoại tuyến.

Khi tôi làm một adb devicestừ dòng lệnh nó nói

emulator-5554 offline

Ngay cả sau khi khởi động lại mới, tôi thử lệnh đó và nó vẫn báo là ngoại tuyến.

Vấn đề là khi tôi cố gắng cài đặt các tệp .apk vào trình giả lập bằng cách sử dụng abd install <path>từ dấu nhắc lệnh, nó sẽ cho tôi biết rằng nó đang ngoại tuyến, nếu tôi tạo một thiết bị khác và chạy nó, sau đó thử cài đặt các tệp .apk, nó nói tôi có quá nhiều thiết bị được kết nối. Nói cách khác, tôi không thể cài đặt các tệp .apk của mình.

Làm thế nào trên thế giới tôi có thể thoát khỏi trình giả lập chết tiệt đó-5554? Tôi nghe nói rằng nếu bạn thực hiện khởi động lại, nó sẽ xóa tất cả các thiết bị, nhưng điều đó dường như không hoạt động. Nó giống như nó đang được khởi tạo khi máy tính của tôi khởi động. Có ai gặp phải vấn đề này?

Cảm ơn


3
Để xác định xem sự cố có phải là trình giả lập hay không, hãy thử điều này: 1. Mở trình giả lập. 2. Mở một trình giả lập khác. 3. adb devicesđể có được tên của trình giả lập. 4. Cố gắng cài đặt APK bằng cách thực hiện: adb -s NAME_OF_DEVICE install file.apk5. Hãy cho chúng tôi biết điều gì xảy ra.
Cristian

Tôi sẽ thử khi tôi về nhà (tại nơi làm việc ngay bây giờ), tôi không biết bạn có thể chỉ định thiết bị bạn muốn cài đặt. Điều đó sẽ thực sự hữu ích. Tôi sẽ cập nhật trong một vài giờ. Cảm ơn vi đa trả lơi!
hanesjw

Cảm ơn một lần nữa cho nhận xét. Tôi đã có thể cài đặt apk trên trình giả lập làm những gì bạn nói. Cái bị ngắt kết nối vẫn còn trong danh sách thiết bị của tôi, nhưng tất cả những gì tôi muốn làm là cài đặt .apk đó. Cảm ơn một lần nữa, nó đã làm việc!
hanesjw

Tôi nghĩ rằng câu hỏi này có liên quan đến: stackoverflow.com/questions/6013624/ Hãy thử xem chủ đề này.
ivy

Điều này không trả lời câu hỏi của bạn, nhưng có thể giải quyết vấn đề của bạn - adb -dcác thiết bị usb được chỉ định thay vì trình giả lập, adb -etrình giả lập thay vì thiết bị usb và adb -s NAMEtôi nghĩ có thể được sử dụng để chỉ định cụ thể thiết bị nào bạn muốn, mặc dù tôi không rõ liệu cuối cùng một luôn luôn làm việc theo cách bạn nghĩ.
Erhannis

Câu trả lời:


62

Trong trường hợp như vậy, bạn có thể thực hiện tất cả các thao tác sau để đảm bảo rằng trình giả lập của bạn bắt đầu hoạt động trở lại:

  1. Chuyển đến cmd và gõ adb kill-server
  2. Đi đến trình quản lý tác vụ và tìm adbtrong các quy trình. Nếu bạn tìm thấy một, nhấp chuột phải vào nó và nhấp vào cây quá trình kết thúc.
  3. Trong nhật thực, đi tới Window> Trình quản lý thiết bị ảo Android , nhấp vào AVD bạn muốn khởi chạy, nhấp vào bắt đầu và bỏ chọn " Khởi chạy từ ảnh chụp nhanh " và sau đó nhấp vào khởi chạy.

Đó là nó! Nó sẽ mất một lúc và nó sẽ giải quyết vấn đề của bạn.


Điều này cũng có tác dụng với tôi (giết ADB không giải quyết được vấn đề của tôi, trong mọi tình huống).
Booger

Ngay khi tôi giết cây quy trình đó, danh sách các thiết bị chạy adb đã bị xóa :) nó đã hoạt động. <3 cảm ơn
DeathRs

9
Trong Android Studio, để thay đổi Tùy chọn khởi động thiết bị ảo từ Quick Boot sang Cold Boot hoạt động với tôi.
lớn

Tôi có thể tìm thấy cài đặt "Khởi chạy từ ảnh chụp nhanh" trong Trình quản lý thiết bị Android khi tôi thực hiện cài đặt này từ Visual Studio 2019?
jacktric

106

1. Chỉ cần "Xóa dữ liệu" để khắc phục sự cố này.

nhập mô tả hình ảnh ở đây

2. Nếu nó không hoạt động, hãy đi đến thiết bị mô phỏng và bật tùy chọn nhà phát triển> bật gỡ lỗi usb


1
Gỡ cài đặt ứng dụng khỏi trình giả lập đã giúp tôi. Nhưng đó là ý tưởng tương tự như xóa sạch dữ liệu
james

Điều này đã giúp kết hợp với 'Khởi động lạnh ngay bây giờ' ngay bên dưới 'Xóa dữ liệu'.
S. Gissel

tks rất nhiều, bạn đã cứu ngày của tôi
Mạnh Nguyên

24

Cách mà Android phát hiện các trình giả lập là bằng cách quét các cổng bắt đầu từ cổng 5555.

Số bạn thấy trong adb devicesdanh sách (trong trường hợp của bạn là 5554) sẽ ít hơn một cổng so với cổng mà adb đang tìm kiếm mở.

Bạn có thể có một quá trình đang chạy trên cổng 5555. Để thoát khỏi thiết bị "ngoại tuyến", bạn sẽ cần tìm ứng dụng đó và đóng nó hoặc cấu hình lại để nghe một cổng khác.


Câu hỏi là về ADB. Số cổng ADB bắt đầu lúc 5555.
Brigham

2
"Bạn có thể có một quá trình đang chạy trên cổng 5555". Điều này thực sự hữu ích khi chúng tôi đang chạy một máy chủ khác trên cổng đó và đã hoàn toàn quên nó!
abhijit

Nó luôn bắt đầu vào ngày 5554 - trên tất cả các PC của tôi (ở nhà và ở nơi làm việc) ... và nó luôn luôn NGAY (5554, 5556, 5558, 5560, ...) trong khi sử dụng nhiều trình giả lập.
Phantômaxx

Frank, tại sao bạn nghĩ rằng tất cả họ thậm chí? Đó là bởi vì Android cũng sử dụng các cổng được đánh số lẻ ở giữa.
Brigham

Điều này cũng giúp tôi! Tôi đã mở một cổng vào 5555, hiển thị dưới dạng trình giả lập 5554 (?). Tất cả những người đã thử các câu trả lời kiểu "khởi động lại máy chủ" không hoạt động nên tiếp tục và portscan localhost của họ. Tôi giả định ADB sẽ sử dụng các thiết bị USB trực tiếp hơn, không nhìn vào các cổng cục bộ của tôi và đưa ra các giả định về việc có một trình giả lập ở đó mà không cần thực hiện kiểm tra giao thức.
mvr

22

Giải pháp này dành cho Windows.

(Xem giải pháp của @Chris Knight cho Mac / Linux )

  1. Khởi động Windows Powershell:

    Bắt đầu -> nhập 'powershell' -> Nhấn ENTER

  2. Chạy lệnh sau: thiết bị adb


PS C:\Users\CJBS>adb devices
List of devices attached
emulator-5656   host
emulator-5652   host
12b80FF443      device

Trong trường hợp này, 12b80FF443 là thiết bị vật lý của tôi và các mục giả lập- * là rác.

  1. Per @Brigham , "Cách mà Android phát hiện các trình giả lập là bằng cách quét các cổng bắt đầu từ cổng 5555.". Số cổng được chỉ định sau tên giả lập (trong trường hợp này là 5656 và 5652). Số cổng cần kiểm tra là số cổng giả lập cộng 1. Vì vậy, trong trường hợp này: -

    566 + 1 = 5657

    5652 + 1 = 5653

    Vì vậy, hãy xem chương trình nào đang sử dụng các cổng này. Trong trường hợp này, các cổng để kiểm tra cả hai bắt đầu bằng "565". Vì vậy, tôi sẽ tìm kiếm các cổng được sử dụng bắt đầu từ 565. Thực thi:netstat -a -n -o | Select-String ":565"


PS C:\Users\CJBS> netstat -a -n -o |  Select-String ":565"

  TCP    127.0.0.1:5653         127.0.0.1:5653         ESTABLISHED     5944
  TCP    127.0.0.1:5657         127.0.0.1:5657         ESTABLISHED     5944
  1. Trường cuối cùng trong đầu ra này là PID (ID tiến trình) - trong trường hợp này là PID 5944 cho cả hai cổng này. Vì vậy, hãy xem ID quá trình này là gì. Thực hiện : tasklist /v | Select-String 5944. Thay thế 5944 bằng đầu ra của lệnh trước:

PS C:\Users\CJBS> tasklist /v | Select-String 5944

adb.exe                       5944 Console                    1      6,800 K Running         MyPCName\CJBS          0:06:03 ADB Power Notification Window

Thật là ngạc nhiên. Đó là ADB. Theo ghi nhận của các câu trả lời khác, nó cũng có thể là các chương trình khác.

  1. Bây giờ, chỉ cần giết ID tiến trình này. Thực thi kill 5944, thay thế 5944 bằng PID trong lệnh trước đó.

PS C:\Users\CJBS> kill 5944
  1. Để xác nhận rằng trình giả lập giả đã biến mất, hãy chạy lại lệnh sau: thiết bị adb

PS C:\Users\CJBS>adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
12b80FF443      device

ADB khởi động lại (như đã bị giết trước đó) và nó không phát hiện ra các trình giả lập nữa.


9

Cuối cùng tôi đã giải quyết được vấn đề này, tôi phải vào tùy chọn Nhà phát triển từ Cài đặt trong Trình mô phỏng , sau đó cuộn xuống một chút, bật gỡ lỗi USB. Ngay lập tức thiết bị của tôi đã được công nhận trực tuyến và tôi không còn phải đối mặt với vấn đề đó nữa. Tôi đã thử khởi động lại studio và trình giả lập Android , giết quá trình adb , nhưng chúng không hoạt động.


1
Bạn là một anh hùng!
Felipe Castilhos

Xin chào @Shamsul, bạn có thể vui lòng mô tả cách truy cập Tùy chọn nhà phát triển từ Cài đặt, trong Trình mô phỏng không? Tôi đoán bạn đang đề cập đến AVD Manager, trong Android Studio. Tôi có cùng một vấn đề được mô tả trong chủ đề này và đã thử tất cả những điều được đề xuất ngoại trừ đề xuất của bạn. Tôi không thấy bất kỳ Tùy chọn nhà phát triển nào cho Trình mô phỏng trong Trình quản lý AVD.
Eddie

Xin chào Eddie, quy trình thông thường để bật tùy chọn nhà phát triển là giống nhau đối với trình giả lập và thiết bị thực. Tìm số bản dựng trong thông tin phần mềm, chạm vào liên tục, sau 7-10 lần chạm, bạn sẽ thấy tùy chọn nhà phát triển đã được bật.
Shamsul Arefin Sajib

8

Nếu bạn đang dùng Linux hoặc Mac và giả sử thiết bị ngoại tuyến là 'trình giả lập-5554', bạn có thể chạy như sau:

netstat -tulpn|grep 5554

Mà mang lại sản lượng sau:

tcp        0      0 127.0.0.1:5554          0.0.0.0:*               LISTEN      4848/emulator64-x86
tcp        0      0 127.0.0.1:5555          0.0.0.0:*               LISTEN      4848/emulator64-x86

Điều này cho tôi biết rằng id quá trình 4848 (khả năng của bạn sẽ khác) vẫn đang lắng nghe trên cổng 5554. Bây giờ bạn có thể tắt quy trình đó bằng:

sudo kill -9 4848

và thiết bị ngoại tuyến ma không còn nữa!


8

Từ Trình quản lý AVD, hãy thử tùy chọn "Khởi động nguội ngay" trong trình đơn thả xuống. Nó làm việc cho tôi!


Đây có lẽ là điều đầu tiên mọi người nên thử trước khi đi vào những giải pháp quá phức tạp này ...
ralfoide

7

Trong trường hợp của tôi, tôi đã tìm thấy một số quy trình làm cho adb không hoạt động tốt.
Bạn có thể thử tiêu diệt một số quy trình lạ và chạy "thiết bị adb" để kiểm tra.

Nó hoạt động với tôi:
giết tên tiến trình MONyog.exe


7

Tôi đã giải quyết điều này bằng cách mở lệnh của tôi:

máy chủ tiêu diệt adb

thiết bị adb

Sau khi khởi động, ADB hiện phát hiện thiết bị / trình giả lập.


7

Tôi cũng có vấn đề tương tự. Tôi đã thử tất cả các giải pháp được mô tả ở đây nhưng chúng không giúp tôi. Sau đó, tôi đã xóa tất cả các trình giả lập trong Trình quản lý thiết bị ảo Android và tạo các trình giả lập mới. Vấn đề là ở cấu hình hình ảnh hệ thống CPU / ABI của Trình quản lý thiết bị ảo Android . Trên trình giả lập máy Windows10 của tôi với hình ảnh hệ thống x86luôn ở chế độ ngoại tuyến trong đó trình giả lập với hình ảnh hệ thống hoạt x86_64động tốt như mong đợi. Chỉ cần lưu ý về điều này


trong trường hợp của tôi, x86 hệ thống hình ảnh windows 10, tôi chỉ cần xóa tất cả trình giả lập sau đó tạo lại chúng
Dika

1
Cảm ơn bạn rất nhiều, tôi đã dành rất nhiều thời gian để cố gắng làm việc này và đây là vấn đề của tôi
Brendan Samek

Tương tự ở đây, nhưng trên Windows 7.
Viktor Brešan

5

Chỉ viết

adb -e reboot

và hài lòng với adb))


Điều này nói với ADB để khởi động lại trình giả lập. Nó không thể hoạt động nếu được đánh dấu ngoại tuyến.
shkschneider

hoạt động nếu trước đây bạn thực hiện rm -Rf ~/.androidđể làm sạch thiết bị ngoại tuyến. Lệnh tốt nhất và chỉ có một để giải quyết vấn đề của tôi. Không kill-serverhoặc start-serverđã lừa
Victor R. Oliveira

4

Bật gỡ lỗi USB vào trình giả lập của bạn

  1. Cài đặt> Giới thiệu về điện thoại> Số bản dựng> Nhấn vào đó 7 lần để trở thành nhà phát triển;
  2. Cài đặt> Tùy chọn nhà phát triển> Gỡ lỗi USB.

Đó là nó thích


Kích hoạt lại gỡ lỗi USB đã giúp tôi (tắt và bật)
Maxim Mazurok

4

Từ danh sách người quản lý AVD tại danh sách hành động: Cold Boot Now

khởi động lại nó mà không có tất cả nỗi đau ở trên.


3

Tùy chọn "xóa dữ liệu người dùng" cuối cùng đã giải quyết vấn đề của tôi. chỉ cần xóa dữ liệu người dùng mỗi khi bạn khởi động trình giả lập. Điều này luôn làm việc cho tôi! Tôi sử dụng windows 8 x64, nhật thực


đã thử tất cả các cách trên nhưng chỉ làm việc với việc xóa sạch dữ liệu người dùng. Cảm ơn
Sai Ram

@SaiRam, bạn đã không thử tất cả ở trên, vì gợi ý này đã được lặp lại trong một số câu trả lời. Cũng Cold Boot Nowgiúp.
CoolMind

@SaiRam, xin lỗi. :) Cảm ơn.
CoolMind

2

Bạn đã thử xóa và tạo lại AVD của bạn? Bạn có thể xóa các tệp AVD theo cách thủ công bằng cách truy cập vào thư mục chúng được lưu trữ (trong thư mục con /.android/avd của người dùng).


Hi, cảm ơn bạn đã trả lời. Tôi đã thực sự thử điều đó. Vẫn còn đó. Tôi muốn cài đặt lại mọi thứ.
hanesjw

2

Chuyển đến trình quản lý tác vụ windows và kết thúc quá trình "adb.exe". Có thể có nhiều hơn 1 trường hợp của cùng một quy trình, đảm bảo kết thúc tất cả chúng.


1
Làm thế nào về "adb kill-server"?
DagW

2

Bạn đã cài đặt bluestacks chưa? Nếu bạn làm như vậy, quá trình nền mà nó chạy sẽ tạo ra thiết bị ngoại tuyến "trình giả lập-5554".

Chuyển đến trình quản lý tác vụ và kết thúc tất cả các quy trình với mô tả về "Bluestacks"


2

trên linux hoặc mac, cổng bị chặn sẽ giả lập-id + 1 so 5555, vì vậy: sudo lsof -i :5555 sẽ hiển thị cho bạn thông tin về quá trình lấy cổng (nên là cột thứ hai) để giết nó: sudo lsof -i :5555 | awk '{print $2}' | xargs kill

sau đó các thiết bị adb (giả) sẽ không còn hiển thị trong danh sách


2

Trong trường hợp của tôi, trình giả lập đã làm việc với Oreo và thấp hơn, nhưng không phải với Pie, và mọi thứ tôi đã thử dường như không có hiệu quả. Điều cuối cùng đã làm việc là cập nhật trình giả lập lên phiên bản mới nhất (phiên bản 28).


me too ... khá khó chịu
Analizer

2

Trong trường hợp của tôi, tôi bắt đầu trong 'Cold Boot Now' và nhấp vào Tin nhắn để cho phép kết nối.


2

mở trình giả lập của bạn,

cài đặt -> về thiết bị mô phỏng -> nhấp vào Xây dựng số liên tục -> mở tùy chọn nhà phát triển -> mở gỡ lỗi USB


Vấn đề là trình giả lập chỉ có một màn hình đen. Bạn chỉ có thể làm điều này nếu bạn có thể truy cập cài đặt.
Jeanne vie

1

Tôi thấy rằng môi trường mô phỏng xuất hiện dưới dạng "ngoại tuyến" khi phiên bản adb tôi đang sử dụng không phải là gần đây. Tôi đã cập nhật chính xác các đường dẫn của mình (và xóa phiên bản adb cũ) và trên "máy chủ adb kill", "thiết bị adb", môi trường giả lập không còn xuất hiện dưới dạng "ngoại tuyến".

Tôi đã ngay lập tức có thể sử dụng "vỏ adb" sau thời điểm đó.


1

Thử cái này ...

  1. Đóng trình giả lập nếu nó Chạy.

  2. Bắt đầu Trình giả lập một lần nữa và chờ cho nó trực tuyến.

  3. nhập Command in Commandprompt và nhấn phím ENTER: adb tcpip 5555

(Đảm bảo rằng chỉ có một trình giả lập chạy cùng một lúc.)

  1. adb -s giả lập-5555 emu kill

  2. Nhấn phím Enter ....

  3. Làm xong.

  4. kiểm tra thiết bị bằng lệnh "thiết bị adb" trong cmd.


1

Nếu trình giả lập đã mở hoặc đang thực thi, nó sẽ cho bạn biết đang ngoại tuyến. Bạn có thể kiểm tra lại trên Dòng lệnh (Ubuntu) và thực thi:

 adb devices

Bạn phải xem trình giả lập ngoại tuyến, bạn phải đóng phiên bản đang chạy của trình giả lập (vì cổng sẽ hiển thị là bận) và sau đó bạn có thể chạy ứng dụng của mình. Hy vọng điều này sẽ giúp được ai đó.


1

Tôi đã thử mọi cách nhưng chỉ có cái này hoạt động cho trường hợp của tôi: Sử dụng trình quản lý SDK và cài đặt lại hình ảnh hệ thống. Android Studio, nhấp vào Cấu hình, Trình quản lý SDK, Khởi chạy Trình quản lý SDK độc lập, Kiểm tra tất cả "API Google Intel x86 * Ảnh hệ thống", "Intel x86 Atom * Ảnh hệ thống" và cài đặt. Sau đó khởi động lại studio Android.

Bạn có thể phải cấu hình lại và xóa thiết bị ảo bằng Trình quản lý AVD, đảm bảo bạn chọn phiên bản x86.


Đối với tôi, đó là phiên bản x86_64 đang hoạt động, những phiên bản khác không hoạt động
hiddeneyes02

1

Đảm bảo rằng tích hợp ADB cho phép của bạn được đánh dấu; đi tới Công cụ> Android> Kích hoạt tích hợp ADB.

nếu không được chọn, hãy chọn tùy chọn này và đóng thiết bị ảo của bạn và mở lại. điều này làm việc cho tôi .. chúc may mắn !!


1

Tôi đã có cùng một vấn đề với thiết bị ảo của tôi. Vấn đề là do hình ảnh Oreo của các thiết bị ảo đã tích hợp Play Store. Để giải quyết vấn đề này, tôi đã cài đặt một thiết bị mới mà không tích hợp Play Store và tất cả đều ổn.

Hy vọng nó sẽ giúp, tạm biệt


Thật là một tình huống kỳ lạ, nhưng nó cũng đã sửa nó cho tôi.
reidisaki

0

Đơn giản chỉ cần xóa và tạo thiết bị avd một lần nữa. Nó sẽ hoạt động.


0

Trong trường hợp của tôi, nguyên nhân là tôi đã nối lại một máy ảo có android-x86 bên trong. Khởi động lại VM với Android-x86 và khởi động lại máy chủ adb đã khắc phục sự cố.


0

Đó là vì thực tế là bạn có một thiết bị ảo khác được cài đặt trên máy của bạn. Nó có thể là Bluestacks vì tôi cũng gặp phải một vấn đề tương tự. Tôi đã gỡ cài đặt Bluestacks và sau đó kiểm tra adb devices Nó đã chạy tốt rồi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.