2017-01-20 9 views
0

내 사용자의 몇 가지에 다음과 같은 오류가 있어요 :이 java.lang.SecurityException : 사용 권한이 거부되었습니다 (실종 인터넷 권한?)

Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?) 
    at java.net.InetAddress.lookupHostByName(InetAddress.java:418) 
    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 
    at java.net.InetAddress.getAllByName(InetAddress.java:214) 
    at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28) 
    at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216) 
    at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122) 
    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292) 
    at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255) 
    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206) 
    at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345) 
    at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89) 
    at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197) 
    at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:254) 
    at [my communication HttpUrlConnection request] 
    ... 12 more 
Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname) 
    at libcore.io.Posix.getaddrinfo(Native Method) 
    at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:61) 
    at java.net.InetAddress.lookupHostByName(InetAddress.java:405) 
    ... 25 more 
Caused by: libcore.io.ErrnoException: getaddrinfo failed: EACCES (Permission denied) 
    ... 28 more 

응용 프로그램은, 그것이 가장 기본적인 기능의 수행 인터넷을 필요로 I 사용자가 루트 또는 이와 유사한 것을 사용하여 권한을 제거했다고 생각하지 마십시오.

또한이 오류는 내 자신의 오류보고 도구를 사용하여 전송되었습니다. 등록 된 오류로 업로드를했고 그 순간에 권한을 사용할 수있었습니다.

오류가있는 Android 버전의 기기 모델에는 제한이 없습니다. 매니페스트의 일부

예 : 단서가 인정된다

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

, 미리

감사합니다.

+0

도움이 될

public static boolean hasPermissions(Context context, String... permissions) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) { for (String permission : permissions) { if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { return false; } } } return true; } 

통해 UR에서 onCreate이 코드를 추가하여 응용 프로그램에 필요한 권한 만 요청합니다 : //stackoverflow.com/questions/34163435/httpurlconnection-request-error-missing-internet-permission-when-the-permission "하지만 유용한 의견이 없습니다 .so 다시 질문해야합니다. – titoFlying

+0

TKS,하지만 그건 같은 질문이 아닙니다. – titoFlying

+0

매니페스트를 더 업로드 할 수 있습니까? 매니페스트에 태그 앞에 인터넷 사용 권한이 있습니까? – mcarlin

답변

0

이 코드는 도움이됩니다. 이것은 같은 질문에 "http이 있습니다

int PERMISSION_ALL = 1; 
    String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_SMS, Manifest.permission.CAMERA}; 

    if (!hasPermissions(this, PERMISSIONS)) { 
     ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL); 
    } 
+0

일단이 코드를 onCreate에 추가하면 권한을 한 번만 사용하면 ** 매니페스트 **에서 사용 권한을 추가하는 것에 대해 걱정할 필요가 없습니다. –

+0

코드에이 코드를 추가했습니다. 하지만 여전히 매우 작은 변화로이 버그가 있습니다. – titoFlying

+0

@titoFlying 저는 주요 문제가 장치에 있다고 생각합니다. 내가 생각하는 유일한 마지막 방법은 설정 -> 앱 -> 권한으로 이동하여 활성화하는 것입니다. 위의 코드는 내가 개발 한 모든 응용 프로그램 (인터넷 사용 권한 포함)에서 작동했습니다. 제발 당신이 직면하고있는 문제의 종류를 알려주십시오. 감사 –

0

이 당신에게

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />