Computer Language/Android

[Android] 안드로이드 Network error IOException: socket failed: EACCES (Permission denied) 해결하기

꽁담 2021. 7. 25. 22:57

socket failed: EACCES 오류원인

안드로이드에서 네트워크(IP) 기능을 통해 데이터를 송수신하려고 하는 상황에서

외부로 통신이 가능한 권한이 없는 경우 아래와 같은 오류가 발생합니다.

W/System.err: java.sql.SQLException: Network error IOException: socket failed: EACCES (Permission denied)

 

 

socket failed: EACCESS 해결방안

AndroidManifest.xml 에 필요한 권한을 추가해 주어야 합니다.

 

AndroidManifest.xml 에 uses-permission 추가

애플리케이션에서 네트워크관련 작업을 실행하기 위해 매니페스트에 권한을 추가합니다.

필요한 권한은 INTERNET 과 ACCESS_NETWORK_STATE 입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.mypet">
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyPet">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
</manifest>
cs

 

네트워크 권한 추가와 관련된 참고사이트입니다.

https://developer.android.com/training/basics/network-ops/connecting?hl=ko

 

네트워크에 연결  |  Android 개발자  |  Android Developers

애플리케이션에서 네트워크 작업을 실행하려면 매니페스트에 다음 권한을 포함해야 합니다. 참고: Internet과 ACCESS_NETWORK_STATE 권한은 모두 일반 권한입니다. 즉, 이러한 권한은 설치 시 부여되고

developer.android.com

 

 

오류가 추가로 발생하는 경우

Permission Denied 오류는 해결되었지만 NetworkOnMainThreadException 오류가 추가발생하는 경우가 있습니다.

java.lang.RuntimeException: Unable to start activity ComponentInfo: android.os.NetworkOnMainThreadException

 

이럴 때 아래 포스팅을 참고하면 해결하실 수 있을 것으로 생각됩니다.

https://mozi.tistory.com/598

 

[Android] 안드로이드 Unable to start activity ComponentInfo: android.os.NetworkOnMainThreadException 임시 해결하기

상황 안드로이드에서 네트워크를 통해 외부로 접속하려는 상황에서 Permission Denied 오류가 발생하였고 매니패스트에 필요한 권한을 등록한 후에 NetworkOnMainThreadException 에러가 발생하였습니다. jav

mozi.tistory.com