Làm cách nào tôi có thể chạy trình giả lập Android cùng với một VM khác?


7

Bất cứ khi nào tôi mở trình giả lập Android khi một loại VM khác đang chạy, tôi sẽ nhận được thông báo lỗi "thông thường":

Trình giả lập: Không thể đồng bộ hóa
trình giả lập vcpu reg : Không thể đồng bộ hóa bối cảnh HAX vcpu

Ở đây chúng tôi khuyên bạn không nên chạy một VM khác, nhưng nếu tôi cần một VM khác để phát triển hoặc chạy máy chủ cho ứng dụng Android của tôi trên đó thì sao? Có cách nào để chạy VM máy khách VirtualBox Linux và trình giả lập Android cùng một lúc không? Hệ điều hành máy chủ của tôi là OSX nếu điều đó quan trọng.


Vì vậy, "một VM khác" không chạy Android (ví dụ: dự án Android-x86 mà một người bình thường chạy với VirtualBox), nhưng đó chỉ là "một số VM khác" (ví dụ: chạy Linux hoặc Windows), như trong câu hỏi được liên kết - vì vậy về cơ bản nó là vấn đề rất giống nhau?
Izzy

1
Vấn đề tương tự, ngoại trừ, ở đó họ muốn có thể chạy trình giả lập Android và đóng các VM khác là một giải pháp đủ và trong trường hợp của tôi, tôi đã tuyên bố rõ ràng rằng tôi cần cả hai VM chạy bên cạnh nhau .
Gavriel

Đây không phải là về phát triển cụ thể vì vậy Stack Overflow sẽ không phù hợp. Siêu người dùng có thể sẽ như vậy, nhưng vì chúng tôi hỗ trợ trình giả lập sử dụng ở đây, tôi nghĩ sẽ ổn thôi. Tôi đã kết hợp một số thông tin vào câu hỏi và làm sạch một số ý kiến.
Matthew Đọc

Nếu bạn không cần chạy ứng dụng của mình một cách cụ thể trong trình giả lập, bạn có thể chạy nó trong máy ảo android-x86 bằng VirtualBox hoặc Genymotion VM (là trình bao bọc của VirtualBox) cùng với khách Linux của bạn.
Paul Ratazzi

Thật không may, tôi không thể sử dụng Genymotion, nó thất bại. Có lẽ tôi sẽ mở một câu hỏi khác về điều đó.
Gavriel

Câu trả lời:


1

Có, có một cách để chạy VM máy khách VirtualBox Linux và trình giả lập Android cùng một lúc.

Tôi có một thiết lập làm việc thực hiện chính xác điều này bây giờ, và nó khá đơn giản. Để giải quyết vấn đề trên, bạn có thể chạy Genymotion làm trình giả lập Android và Virtualbox cho máy ảo VM khách Linux của bạn.

Điều này chống lại sự cố được mô tả trong các câu trả lời ở trên vì Genymotion sử dụng Virtualbox "bên dưới" như một trình ảo hóa, nghĩa là cả hai Máy ảo của bạn (Trình khách Linux và trình giả lập Android) đang chạy trong cùng một trình ảo hóa. Đây chính xác là những gì các siêu giám sát có nghĩa là cho.

Ngoài ra, để làm rõ ý nghĩa của poster trong liên kết mà bạn đưa ra, người nói rằng "không nên chạy VM khác", tôi nghĩ ý của anh ấy là bạn cũng không thể chạy các trình ảo hóa khác (Docker và Virtualbox được mô tả ở đó ) song song với Trình giả lập Android, vì các lý do được mô tả bởi các câu trả lời khác tại đây.


Câu trả lời này không giúp ích gì nếu không có liên kết và hướng bổ sung. Không rõ ràng về cách thức hoạt động của nó hoặc làm thế nào để bắt đầu.
Anthony

2

Bạn không thể chạy hai ngăn xếp mô phỏng khác nhau trên bộ xử lý của mình cùng một lúc. Xin lỗi, nó sẽ không xảy ra.

Cập nhật: Bộ xử lý của bạn chỉ có thể chạy một hệ thống mô phỏng tại thời điểm đó. Các mô-đun hạt nhân sẽ bảo lưu quyền sử dụng các khả năng mô phỏng của bộ xử lý trong trường hợp loại trừ bất kỳ trình giả lập nào khác muốn sử dụng nó. Vì vậy, bạn chỉ có thể sử dụng riêng VMware, VirtualBox, HyperV, v.v.


"Ngăn xếp thi đua" là gì? Tôi có thể chạy nhiều trình giả lập andorid và tôi cũng có thể chạy nhiều VM-s trong Virtualbox. Bạn đang nói rằng không có cơ hội tôi có thể chạy một VM trong VirtualBox và một trình giả lập Android từ Android Studio?
Gavriel

3
Mặc dù điều đó có thể đúng, tâm trí để đưa ra lý do? Bất kỳ sự ủng hộ nào cho yêu cầu của bạn (với một số nền tảng) sẽ tốt đẹp.
Izzy

2
@Gavriel điều Aeyoun rất có thể có nghĩa là trong khi bạn có thể chạy song song nhiều máy ảo VirtualBox, đó là cùng một "Stack" mà chúng chạy trên (VirtualBox, nơi quản lý chúng). Nhưng bạn không thể bắt đầu một "ngăn xếp" khác (giả sử VMWare hoặc Trình giả lập Android) trong khi đã có một hoạt động, vì có thể có một số tài nguyên bị khóa. Đó chỉ là ý tưởng tôi có được, tôi không có bằng chứng nào cho việc này - đó là lý do tại sao tôi yêu cầu Aeyoun cung cấp một số nền tảng;)
Izzy

0

trình giả lập: Không thể đồng bộ hóa bối cảnh HAX vcpu

HAX là viết tắt của H ardware A ccelerated e X eculation. Thật sự không thể chạy 2 bộ ảo hóa khác nhau một cách chính xác bằng cách tăng tốc phần cứng - họ không biết người kia đang làm gì và cả hai sẽ cố gắng sử dụng phần cứng cho mục đích riêng của họ. Cố gắng làm như vậy ít nhiều giống như cố gắng chạy hai hệ điều hành không ảo hóa cùng một lúc, điều này rõ ràng không thể hoạt động.

Giờ đây, bạn có thể chạy một máy ảo hoàn toàn dựa trên phần mềm cùng lúc với trình giả lập Android - nhưng hiệu suất của nó sẽ bị ảnh hưởng rất nhiều (tùy thuộc vào việc bạn đang sử dụng nó để làm gì). Tôi đã phát hiện ra rằng trình giả lập Android chậm đến mức không có giá trị nếu không tăng tốc phần cứng, vì vậy bạn chắc chắn không muốn tắt nó.

Tuy nhiên, Memu có vẻ khá hiệu quả và chơi tốt với VMware trên máy của tôi, vì vậy đó có thể là một lựa chọn cho bạn. Tuy nhiên, tôi chưa thử phát triển với Memu; Tôi không thể làm cho ADB hoạt động.


-1

Nó thực sự có thể. Bạn cần chạy HAXM phiên bản 6.1.1 ít nhất.

Nếu bạn nâng cấp lên phiên bản này, nó sẽ hoạt động.

Sau khi nâng cấp, hãy đảm bảo phiên bản chính xác đang chạy bằng cách chạy:

$ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh -v

Nếu nó báo cáo một phiên bản cũ hơn, bạn có thể phải chạy trình cài đặt bằng tay bằng cách chạy:

sudo $ANDROID_HOME/extras/intel/Hardware_Accelerated_Execution_Manager/silent_install.sh
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.