이번에 macOS가 Sierra(10.12)로 업데이트 되면서 이상하게도 ADB가 정상적으로 동작하지 않는 문제가 있었습니다. 그럴때마다 Android 디바이스를 재연결 하거나 ADB Server를 재시작하는 식으로 문제를 해결해 왔습니다만 좀 더 근본적으로 이 문제를 해결할 수 있는 방법이 있어서 내용을 정리합니다.
우선 이는 Android Studio 2.2가 배포되던 시기에 함께 배포되던 Android SDK Platform Tools 에 존재했던 버그때문에 발생한 문제입니다. 이는 [참고URL]와 같이 해결 되었으며 Android SDK Platform Tools 버전 24.0.4 이후에 적용되었습니다.
이 글을 작성하는 현재 시점에서는 버전이 25까지 올라갔군요. 하지만 저의 경우에는 이렇게 버전업그레이드를 했음에도 계속해서 문제가 발생하였습니다. 심지어 ADB의 오류 메시지로는 다음과 같은 메시지가 출력되었습니다.
1 2 3 4 5 6 7 8 9 10 11 |
* daemon not running. starting it now on port 5037 * * daemon started successfully * error: no devices/emulators found error: no devices/emulators found ... error: device unauthorized. This adb server's $ADB_VENDOR_KEYS is not set Try 'adb kill-server' if that seems wrong. Otherwise check for a confirmation dialog on your device. |
이와 같은 문제는 다음의 과정을 통해 해결할 수 있었습니다.
1. Android 디바이스의 연결을 해제 합니다. 간단하게 USB 케이블을 뽑으시면 됩니다.
2. ADB Server를 종료합니다.
1 |
$ adb kill-server |
3. Android 설정 파일이 존재하는 디렉토리로 이동합니다.
1 |
$ cd ~/.android |
4. 디렉토리 안에 존재하는 adbkey 및 adbkey.pub 파일을 삭제합니다.
1 |
$ rm adbkey* |
5. ADB Server를 재시작 합니다.
1 |
$ adb start-server |
6. Android 디바이스를 다시 연결합니다. 이후 다시 신뢰하는 디바이스로 연결하겠냐는 팝업이 뜨게 되는데 다시 등록해 주시면 adbkey 파일이 재생성됩니다.
위와 같은 작업을 거치고 나면 연결이 끊어지지 않고 정상적으로 동작하는 것을 확인할 수 있습니다.
참고 :