2015-09-28 51 views
1

我知道許多其他人在以前提出過類似的問題。但我躲開了這個有很多,但我的問題沒有用在計算器以前的答案或其他網站的解決: 這是我的清單文件:java.lang.SecurityException:權限被拒絕(缺少INTERNET權限?)即使在Android清單中添加此權限

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

,我有這樣的代碼在我的課:

JSONObject json = jParser.makeHttpRequest("http://sirsaleh.com/atu/atu.php", "GET", params); 

但我看到這個運行時錯誤每次:

09-28 16:22:28.579 9558-9597/ir.atue.atufeed E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1 
java.lang.RuntimeException: An error occured while executing doInBackground() 
     at android.os.AsyncTask$3.done(AsyncTask.java:299) 
     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 
     at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:239) 
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
     at java.lang.Thread.run(Thread.java:841) 
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 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137) 
     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:612) 
     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:495) 
     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:473) 
     at ir.atue.atufeed.JSONParser.makeHttpRequest(JSONParser.java:65) 
     at ir.atue.atufeed.takeit$LoadAllProducts.doInBackground(takeit.java:106) 
     at ir.atue.atufeed.takeit$LoadAllProducts.doInBackground(takeit.java:84) 
     at android.os.AsyncTask$2.call(AsyncTask.java:287) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
            at java.lang.Thread.run(Thread.java:841) 
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) 
            at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 
            at java.net.InetAddress.getAllByName(InetAddress.java:214) 
            at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137) 
            at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
            at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
            at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
            at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:612) 
            at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:495) 
            at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:473) 
            at ir.atue.atufeed.JSONParser.makeHttpRequest(JSONParser.java:65) 
            at ir.atue.atufeed.takeit$LoadAllProducts.doInBackground(takeit.java:106) 
            at ir.atue.atufeed.takeit$LoadAllProducts.doInBackground(takeit.java:84) 
            at android.os.AsyncTask$2.call(AsyncTask.java:287) 
            at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
            at java.lang.Thread.run(Thread.java:841) 
Caused by: libcore.io.ErrnoException: getaddrinfo failed: EACCES (Permission denied) 
+1

請張貼您的整個清單。另請參閱[本博文](https://commonsware.com/blog/2015/08/31/hey-where-did-my-permission-go.html)。 – CommonsWare

+0

感謝您的鏈接!問題確切的是「你在錯誤的地方的元素」:) – SirSaleh

回答

3

把你的許可,在清單中這樣說:

<manifest ... > 

... 

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

<application ... 

</manifest> 
+0

謝謝!!!!!我之前在標籤中寫了我的權限!但是我應該在開放之前使用它,謝謝!你救了我! – SirSaleh

1

您運行應用程序的設備(模擬器,android手機等)可能無法訪問您在代碼中定義的網絡地址。

產生的原因:libcore.io.GaiException:失敗的getaddrinfo:EAI_NODATA(與主機名相關無 地址)

當你上述錯誤,嘗試打開與HTTP地址的設備的本地瀏覽器並確保您的設備可以訪問該地址。否則,也許你應該檢查你的設備的互聯網連接和代理設置。

+0

感謝您的回答!但問題是在我的androidmanifest文件:) – SirSaleh

相關問題