안드로이드 앱을 빌드하는 도중에 "java.net.SocketException: socket failed: EPERM (Operation not permitted)"와 같은 에러가 발생할 수 있습니다. 이는 소켓 연결이 제대로 이루어지지 않아 발생하는 문제로, 보안 설정이나 방화벽 설정 등이 올바르게 구성되지 않아 발생할 수 있습니다. 이번에는 이러한 에러가 발생했을 때 해결 방법에 대해 알아보겠습니다.
방법
- 방법 1: 안드로이드 스튜디오를 관리자 권한으로 실행
- 방법 2: 방화벽 설정 변경하기
- 방법 3: 안드로이드 adb 서비스 재시작
- 방법 4: 앱 재설치
방법 1: 안드로이드 스튜디오를 관리자 권한으로 실행
먼저, 안드로이드 스튜디오를 관리자 권한으로 실행하여 문제를 해결할 수 있습니다. 다음은 Windows 운영체제에서 관리자 권한으로 안드로이드 스튜디오를 실행하는 방법입니다.
- 안드로이드 스튜디오 아이콘을 마우스 오른쪽 버튼으로 클릭합니다.
- "관리자 권한으로 실행"을 선택합니다.
- "예" 버튼을 클릭하여 안드로이드 스튜디오를 실행합니다.
안드로이드 스튜디오를 관리자 권한으로 실행하면, 보안 설정이나 방화벽 설정 등이 관리자 권한으로 실행되므로 소켓 연결 에러가 발생할 가능성이 낮아집니다.
방법 2: 방화벽 설정 변경하기
두 번째 방법은 방화벽 설정을 변경하여 문제를 해결하는 것입니다. 방화벽 설정을 변경하기 전에 먼저 안드로이드 디바이스의 IP 주소를 확인합니다. 이후 방화벽 설정을 변경하는 방법은 다음과 같습니다.
- "제어판"에서 "Windows 방화벽"을 선택합니다.
- "고급 설정"을 선택합니다.
- "인바운드 규칙"을 선택합니다.
- "새 규칙"을 클릭합니다.
- "프로그램"을 선택합니다.
- "다음"을 클릭합니다.
- "이 프로그램 경로에 대한 경로 검색"을 클릭합니다.
- 안드로이드 스튜디오가 설치된 경로를 선택합니다.
- "다음"을 클릭합니다.
- "허용 연결"을 선택합니다.
- "도메인", "공용", "개인"을 모두 선택합니다.
- 규칙 이름을 입력합니다.
- "완료"를 클릭합니다.
이제 안드로이드 스튜디오를 다시 실행하고 빌드하면, 소켓 연결 에러가 발생하지 않을 것입니다.
방법 3: 안드로이드 adb 서비스 재시작
세 번째 방법은 안드로이드 디바이스와 컴퓨터 간의 연결을 담당하는 adb 서비스를 재시작하는 것입니다. 이를 통해 소켓 연결 에러가 발생하는 문제를 해결할 수 있습니다.
- 먼저, 안드로이드 디바이스를 USB 케이블로 컴퓨터에 연결합니다.
- 컴퓨터에서 "cmd"를 실행합니다.
- "adb kill-server" 명령어를 입력하여 adb 서비스를 종료합니다.
- "adb start-server" 명령어를 입력하여 adb 서비스를 다시 시작합니다.
- 안드로이드 스튜디오에서 앱을 빌드하거나 디버그 모드로 실행합니다.
방법 4: 앱 재설치
안드로이드 디바이스에 설치되어 있는 앱을 삭제후 다시 빌드합니다. 원인 파악은 힘드나 이방법으로 해결되는 경우도 있습니다.
이제 소켓 연결 에러가 발생하지 않을 것입니다.
위의 방법들 중 하나를 시도하여 소켓 연결 에러를 해결할 수 있습니다. 그러나 만약에 위의 방법들 중 하나도 해결되지 않는다면, 안드로이드 스튜디오나 안드로이드 디바이스에 문제가 있을 수 있으니 문제를 해결하기 위해 안드로이드 스튜디오를 재설치하거나 안드로이드 디바이스를 다시 설정해보는 것도 고려해 볼 수 있습니다.
'개발 > Android' 카테고리의 다른 글
[Android] Retrofit2를 사용하여 RESTful API 호출하기 (0) | 2023.03.07 |
---|---|
[Android] Parcelable과 Serializable의 차이점 (0) | 2023.03.07 |
[Android] ExoPlayer2 사용방법 (0) | 2023.02.28 |
안드로이드에서 MVVM 패턴이란? (0) | 2023.02.24 |
[Android] SQLite 데이터베이스를 사용하는 이유는? (0) | 2023.02.24 |
댓글