adb 기기 offline 원인과 해결 방법 (USB, 와이파이)
adb devices에서 폰이 offline으로 표시되는 이유와 해결 방법을 정리했어요. adb 서버 재시작부터 platform-tools 업데이트까지 USB와 와이파이 모두 다룹니다.
adb devices에 폰이 보이긴 하는데 device 대신 offline이라고 나오는 경우가 있어요.
List of devices attached
R58M123ABC offlineoffline은 adb 서버가 폰을 보고는 있지만 양쪽이 ADB 핸드셰이크를 끝내지 못했거나 연결이 끊어졌다는 뜻이에요. 이 상태에서는 adb shell이나 adb install 같은 명령이 error: device offline으로 실패합니다. 흔한 원인부터 차례로 살펴볼게요.
1. adb 서버 재시작
가장 흔한 원인은 오래된 서버 상태예요. 특히 폰이 절전 상태였거나, 재부팅했거나, USB 모드를 바꾼 뒤에 자주 생깁니다.
adb kill-server
adb start-server
adb devices서버를 재시작한 뒤 케이블을 뽑았다가 다시 꽂아 주세요.
2. 폰 잠금을 풀고 허용 창 확인
컴퓨터에 처음 연결하면 폰에 USB 디버깅을 허용하시겠습니까? 창이 떠요. 응답을 기다리는 동안 일부 adb 버전은 unauthorized 대신 offline을 표시합니다. 화면 잠금을 풀고 허용을 누르세요. 창이 뜨지 않으면 개발자 옵션에서 USB 디버깅 권한 승인 취소를 누르고, USB 디버깅을 껐다 켠 뒤 다시 연결하세요.
3. platform-tools 업데이트
오래된 adb 클라이언트는 최신 안드로이드와 핸드셰이크에 실패하고 offline을 표시할 수 있어요. 버전을 확인해 보세요.
adb version몇 년 된 버전이라면 Google에서 최신 Android SDK platform-tools를 받으세요. PATH가 예전 adb를 가리키고 있지 않은지도 확인해야 해요. Android Studio, Genymotion, 일부 폰 관리 프로그램은 자체 adb를 함께 설치합니다.
4. 두 프로그램이 폰을 두고 충돌
Android Studio, scrcpy, 폰 관리 앱, 에뮬레이터, 제조사 PC 프로그램은 각자 adb 서버를 띄울 수 있어요. 서로 버전이 다른 서버가 계속 서로를 재시작시키면 폰이 offline으로 바뀝니다. 다른 도구를 닫고 1단계처럼 서버를 재시작하세요. 자세한 내용은 busy 또는 unauthorized 기기 해결에 있어요.
5. 케이블, 포트, USB 모드
- 데이터 전송이 확실히 되는 다른 케이블을 써 보고, 허브 대신 컴퓨터 본체의 USB 포트에 직접 연결하세요.
- 일부 폰은 USB 알림에서 USB 모드를 충전만(Charging only)에서 파일 전송(File transfer)으로 바꾸면 연결이 안정돼요.
6. 와이파이 연결이 끊긴 경우
adb connect로 연결한 폰은 와이파이가 절전 상태가 되거나, IP가 바뀌거나, 무선 디버깅이 꺼지면 offline이 돼요.
adb disconnect 192.168.1.20:5555
adb connect 192.168.1.20:5555이때 Connection refused가 나오면 네트워크 모드가 꺼진 거예요. Connection refused 해결을 참고하세요.
7. 폰 재부팅
다른 방법이 모두 안 되면 폰과 컴퓨터를 재부팅하세요. 폰에서 멈춘 adbd와 컴퓨터의 꼬인 USB 드라이버 상태가 정리됩니다.
ADBKit은 어떻게 처리하나요
ADBKit은 컴퓨터의 adb 서버를 쓰지 않아요. Chrome이나 Edge가 WebUSB로 폰과 직접 통신하기 때문에 서버 버전이 달라서 offline이 되는 일은 ADBKit에서는 생기지 않습니다. 다만 USB 연결을 단독으로 써야 해서, 다른 프로그램의 adb 서버가 폰을 잡고 있으면 기기가 사용 중이라고 알려 주고 무엇을 닫아야 하는지 안내해요. 와이파이에서는 "connection lost" 상태를 분명하게 보여 주고 다시 연결하도록 제안합니다.
adb devices에 아무것도 나오지 않는다면 adb 기기 인식 안됨 해결을 보세요.