[英]java.lang.SecurityException: Permission denied (missing INTERNET permission?) even with adding this permission in android manifest
I know many others ask similar question before. 我知道很多其他人也曾问过类似的问题。 But I ducked this a lot but my problem didn't solve with previous answers on the stackoverflow or another websites: this is my manifest file:
但是我对此深表歉意,但是我的问题并没有通过stackoverflow或其他网站上的先前答案得到解决:这是我的清单文件:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
and I have this code in my class: 我的课上有这段代码:
JSONObject json = jParser.makeHttpRequest("http://sirsaleh.com/atu/atu.php", "GET", params);
But I see this runtime error each time: 但是我每次都会看到此运行时错误:
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)
Put your permission in the manifest this way: 通过以下方式将您的许可放入清单中:
<manifest ... >
...
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application ...
</manifest>
The device you run the app on (emulator, android phone, etc.) probably has no access to the network address you defined in your code. 您在其上运行该应用程序的设备(模拟器,Android手机等)可能无法访问您在代码中定义的网络地址。
Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
引起原因:libcore.io.GaiException:getaddrinfo失败:EAI_NODATA(没有与主机名关联的地址)
As you get the error above, try to open the http address with your device's native browser and make sure your device has access to that address. 遇到上述错误时,请尝试使用设备的本机浏览器打开http地址,并确保设备可以访问该地址。 Otherwise, maybe you should check your device's internet connection and proxy settings.
否则,也许您应该检查设备的互联网连接和代理设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.