2017-01-20 23 views
0

私は私のユーザーの数に次のエラーを持っている:java.lang.SecurityException:許可(INTERNET権限が不足している?)拒否

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 

アプリは、それは最も基本的な機能だ行うためにインターネットを必要とし、私はユーザーがrootなどを使って権限を削除したとは思わないでください。

さらに、このエラーは私自身のエラー報告ツールで私に送信されました。私は登録されたエラーでアップロードを行い、その時点で許可が得られました。

エラーのある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; } 

はウルのonCreateにこのコードを追加するには、アプリケーションに必要なだけこれらのアクセス許可を要求します: //stackoverflow.com/questions/34163435/httpurlconnection-request-error-missing-internet-permission-when-the-permission "しかし、有用なコメントはありません。だから私は再度尋ねなければなりません。 – 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私は主な問題はデバイスにあると思う。私が思う唯一の最後の方法は、Settings-> Apps-> Permissionに行き、それを有効にすることです。上記のコードは、私が開発したすべてのアプリケーション(インターネットの許可を含む)で動作しています。あなたが直面している問題の種類を教えてください。ありがとう –

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" /> 
関連する問題