안드로이드 스튜디오에서 에뮬레이터가 동시에 여러 개 실행되어 오류가 발생했다.
에뮬레이터를 1) 하나만 실행하는 방법과 2) 동시에 여러 개 실행하는 방법 모두 소개하겠다.
1) 에뮬레이터 하나만 실행하기
1. 현재 실행 중인 에뮬레이터 확인
ps aux | grep emulator
'ps aux' : 현재 터미널과는 무관하게 현재 시스템에서 실행 중인 프로세스 목록을 보여주는 명령어
'grep emulator' : emulator라는 단어를 포함하는 행만 필터링하여 출력하는 명령어
우리가 실행 결과에서 필요한 건 프로세스 id이다. 아래 사진에서 표시한 것과 같이 23979가 프로세스 id이다.
2. 프로세스 종료
kill 23979
주요 에뮬레이터 프로세스 id는 23979이고, grep emulator 프로세스를 제외한 23986, 23983, 23981도 마저 종료해 준다.
kill 23986 23983 23981
3. AVD 실행
emulator -avd <AVD_NAME>
<AVD_NAME> 자리에 사용할 디바이스를 적는다. 이제 디바이스가 실행되기 시작하고, 프로젝트를 Run하면 된다.
예시)
emulator -avd Pixel_8_API_VanillaIceCream
(emulator 명령어를 인식하지 못한다면, 아래 나의 이전 포스트를 참고하자!)
[Android] 에뮬레이터 경로 설정 및 AVD(Android Virtual Device) 확인하기
에뮬레이터를 터미널로 실행하기 위해, 아래 명령어를 실행하려고 했는데 내 AVD의 정확한 이름을 모르겠다. 그전에, emulator 명령어도 인식하지 못한다면, 먼저 Android SDK의 'emulator' 도구를 시스
yahoworld.tistory.com
❓여기서 드는 궁금증❓
Q. 난 분명 에뮬레이터를 한 번에 하나씩만 실행했는데, 왜 여러 에뮬레이터가 실행되고 있던걸까?
A. 에뮬레이터를 종료할 때, 모든 관련 프로세스가 제대로 종료되지 않으면 여전히 백그라운드에서 실행되고 있을 가능성이 있다. 때문에, 항상 kill 명령어로 프로세스를 종료하고 ps aux | grep emulator 명령어로 한 번 더 확인하는 것이 확실하다!
2) 에뮬레이터 동시에 여러 개 실행하기
1. AVD 실행하며 -read-only 플래그 추가
동시에 여러 개의 에뮬을 실행할 때에는 read only 모드로 실행해야 한다. -read-only 플래그는 여러 인스턴스가 충돌 없이 실행될 수 있게 해 준다.
emulator -avd <AVD_NAME> -read-only
2. -log-nofilter 플래그 추가
원래 에뮬레이터는 로그를 필터링해서 중요한 정보만 보여준다. 그러나 혹시 에러가 났을 때, 디버깅을 위해 에뮬레이터에서 발생하는 문제를 상세하게 보고 싶다면 -log-nofilter 플러그를 추가하면 된다. 즉, 에뮬레이터 로그 메시지에서 모든 로그 라인을 보고 싶을 때 사용하면 된다.
emulator -avd <AVD_NAME> -log-nofilter
✏️일반적인 상황에서는 두 플래그를 사용할 필요가 없다. 주로 한 번에 한 에뮬레이터만 돌리기 때문에 -read-only를 할 필요도, 디버깅을 할 필요도 없다.
'안드로이드' 카테고리의 다른 글
[Android] 에뮬레이터 경로 설정 및 AVD(Android Virtual Device) 확인하기 (4) | 2024.08.02 |
---|