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
오류가 추가로 발생하는 경우
Permission Denied 오류는 해결되었지만 NetworkOnMainThreadException 오류가 추가발생하는 경우가 있습니다.
java.lang.RuntimeException: Unable to start activity ComponentInfo: android.os.NetworkOnMainThreadException |
이럴 때 아래 포스팅을 참고하면 해결하실 수 있을 것으로 생각됩니다.
'Computer Language > Android' 카테고리의 다른 글
[Android] 안드로이드 Unable to start activity ComponentInfo: android.os.NetworkOnMainThreadException 임시 해결하기 (0) | 2021.07.25 |
---|---|
[Android] 안드로이드 프래그먼트 사용방법과 생명주기 (0) | 2021.07.14 |
[Android] 안드로이드 match_parent 와 wrap_content 차이점 (0) | 2021.07.12 |
[Android] 안드로이드 레이아웃 (0) | 2021.07.12 |
[Android] 안드로이드 인텐트 다른 액티비티로 이동 및 데이터를 전달 (0) | 2021.07.10 |