문제 해결게시일: 3분 분량

adb error: more than one device/emulator 오류 해결 방법

adb: error: more than one device/emulator 오류를 해결해요. -s, -d, -e, ANDROID_SERIAL로 기기를 지정하는 방법과 남아 있는 와이파이 연결과 에뮬레이터를 정리하는 방법을 알려 드려요.

adb 명령을 실행했더니 이런 오류가 나와요.

adb: error: more than one device/emulator

adb에 기기가 두 대 이상 보여서 어느 기기를 말하는지 알 수 없는 상태예요. 기기를 지정하거나 원하지 않는 기기를 정리하면 해결돼요.

연결된 기기 확인

adb devices -l

예시:

List of devices attached
R58M123ABC             device usb:1-1 product:a54xnseea model:SM_A546B
emulator-5554          device product:sdk_gphone64 model:sdk_gphone64_arm64
192.168.1.20:5555      device product:redwood model:2211133G

여기에는 USB로 연결된 폰, 에뮬레이터, 와이파이로 연결된 폰이 있어요. 이 중 어느 것이든 "남는" 기기가 될 수 있어요.

명령 하나에만 기기 지정

플래그의미예시
-s <serial>시리얼이나 주소로 특정 기기 지정adb -s R58M123ABC shell
-dUSB로 연결된 유일한 기기adb -d install app.apk
-e유일한 에뮬레이터adb -e logcat
-t <id>이 transport id를 가진 기기(adb devices -l에서 확인)adb -t 3 shell

와이파이 기기는 주소가 시리얼이에요. 예를 들면 adb -s 192.168.1.20:5555 shell이에요.

터미널 전체에 기기 지정

ANDROID_SERIAL을 설정하면 그 터미널의 모든 adb 명령이 해당 기기로 가요.

export ANDROID_SERIAL=R58M123ABC        # macOS / Linux
set ANDROID_SERIAL=R58M123ABC           # Windows Command Prompt
$env:ANDROID_SERIAL = "R58M123ABC"      # Windows PowerShell

남는 기기 정리

  • 오래된 와이파이 연결: adb disconnect 192.168.1.20:5555, 모두 끊으려면 adb disconnect.
  • 잊고 있던 에뮬레이터: Android Studio에서 닫거나 adb -s emulator-5554 emu kill.
  • offline 상태로 남은 유령 항목: adb kill-server로 지워져요.
  • 같은 폰이 두 번(USB와 와이파이로 한 번씩): 둘 중 하나의 연결을 끊으세요.

여러 기기를 다루는 스크립트

연결된 모든 기기에서 같은 명령을 실행하려면 시리얼을 반복문으로 돌리세요.

for s in $(adb devices | awk 'NR>1 && $2=="device" {print $1}'); do
  adb -s "$s" shell getprop ro.product.model
done

여러 대의 폰을 운영하는 방법은 안드로이드 디바이스 랩 만들기를 참고하세요.

ADBKit에서 여러 기기 쓰기

ADBKit에서는 이 문제가 생기지 않아요. 기기마다 전용 탭이 있기 때문이에요. USB나 와이파이로 폰을 최대 여섯 대까지 연결하고 브라우저 탭처럼 전환할 수 있어요. 모든 작업은 지금 보고 있는 기기로 가요. 영상은 보이는 탭만 스트리밍하기 때문에 다른 탭은 가볍게 유지돼요. ADBKit을 열고 + Add device로 다음 기기를 연결하세요.