[英]Permission denied - missing INTERNET permission?
I'm having problem with the internet permission. 我有互联网许可的问题。 Yes I've looked around and I made sure the permission is outside the application tag. 是的,我环顾四周,确保权限不在应用程序标记之内。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.com.example.android.sunshine" >
<uses-permission android:name="android.permission.internet" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
And here's the logcat: 这是logcat:
02-13 15:10:07.622 5879-5951/app.com.example.android.sunshine E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1 Process: app.com.example.android.sunshine, PID: 5879 java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 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.InetA 02-13 15:10:07.622 5879-5951 / app.com.example.android.sunshine E / AndroidRuntime:FATAL EXCEPTION:AsyncTask#1进程:app.com.example.android.sunshine,PID:5879 java.lang。 RuntimeException:在java.util.concurrent的java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)上的android.os.AsyncTask $ 3.done(AsyncTask.java:300)执行doInBackground()时发生错误。 FutureTask.setException(FutureTask.java:222)at java.util.concurrent.FutureTask.run(FutureTask.java:242)at java.util的android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:231)。 parallel.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)引起:java .lang.SecurityException:在java.net.InetA的java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)java.net.InetAddress.lookupHostByName(InetAddress.java:418)上的权限被拒绝(缺少INTERNET权限?) ddress.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 app.com.example.android.sunshine.ForecastFragment$FetchWeatherTask.doInBackground(ForecastFragment.java:117) at app.com.example.android.sunshine.ForecastFragment$FetchWeatherTask.doInBackground(ForecastFragment.java:94) at android.os.AsyncTask$2.call(AsyncTask.java:288) at j ddress.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) )com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)位于com.android.okhttp的com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)。 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 app.com.example.android.sunshine.ForecastFragment $ FetchWeatherTask.doInBackground(ForecastFragment.java:117) at app.com.example.android.sunshine.ForecastFragment $ FetchWeatherTask.doInBackground(ForecastFragment.java:94)at android.os.AsyncTask $ 2.call(AsyncTask.java:288)at j ava.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 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 com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216) at ava.util.concurrent.FutureTask.run(FutureTask.java:237)at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:231)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) )java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)引起:libcore.io.GaiException:getaddrinfo failed:EAI_NODATA(No在libcore.io.Posix.getaddrinfo(本地方法)的libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:61)上的java的java.net.InetAddress.lookupHostByName(InetAddress.java:405)中与主机名相关联的地址。 net.InetAddress.getAllByNameImpl(InetAddress.java:236),位于com.android.okhttp.internal.Dns的com.net下的java.net.InetAddress.getAllByName(InetAddress.java:214),以及com中的$ 1.getAllByName(Dns.java:28)。 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 app.com.example.android.sunshine.ForecastFragment$FetchWeatherTask.doInBackground(ForecastFragment.java:117) at app.com.example.android.sunshine.ForecastFragment$FetchWeatherTask.doInBackground(ForecastFragment.java:94) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialEx com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)位于com.android.okhttp.internal的com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)。 http.HttpEngine.sendSocketRequest(HttpEngine.java:255)位于com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)的com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl。 java:345)at app.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)at app.com.example.android.sunshine.ForecastFragment $ FetchWeatherTask.doInBackground(ForecastFragment.java:117)at app .com.example.android.sunshine.ForecastFragment $ FetchWeatherTask.doInBackground(ForecastFragment.java:94)at android.os.AsyncTask $ 2.call(AsyncTask.java:288)at java.util.concurrent.FutureTask.run(FutureTask。 java:237)在android.os.AsyncTask $ SerialEx ecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) Caused by: libcore.io.ErrnoException: getaddrinfo failed: EACCES (Permission denied) 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 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) ecutor $ 1.run(AsyncTask.java:231)位于java的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)。 lang.Thread.run(Thread.java:841)引起:libcore.io.ErrnoException:getaddrinfo失败:在libcore.io.ForwardingOs.getaddrinfo上的libcore.io.Posix.getaddrinfo(本机方法)中的EACCES(权限被拒绝) 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) )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 app.com.example.android.sunshine.ForecastFragment$FetchWeatherTask.doInBackground(ForecastFragment.java:117) at app.com.example.android.sunshine.ForecastFragment$FetchWeatherTask.doInBackground(ForecastFragment.java:94) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecu 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)在app.com.example.android.sunshine.ForecastFragment $ FetchWeatherTask.doInBackground(ForecastFragment.java:117)at app.com.example.android.sunshine.ForecastFragment $ FetchWeatherTask.doInBackground(ForecastFragment.java:94 )android.os.AsyncTask $ 2.call(AsyncTask.java:288)at java.util.concurrent.FutureTask.run(FutureTask.java:237)at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java: 231)在java.util.concurrent.ThreadPoolExecu tor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) 02-13 15:15:07.659 5879-5951/app.com.example.android.sunshine I/Process﹕ Sending signal. tor.runWorker(ThreadPoolExecutor.java:1112)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)02-13 15:15 :07.659 5879-5951 / app.com.example.android.sunshine I / Process:发送信号。 PID: 5879 SIG: 9 PID:5879 SIG:9
Thanks for the help. 谢谢您的帮助。
Please use: 请用:
<uses-permission android:name="android.permission.INTERNET" />
Please read here: 请在这里阅读:
SecurityException: Permission denied (missing INTERNET permission?) SecurityException:权限被拒绝(缺少INTERNET权限?)
Depending on what you are doing you may need to add: 根据您的操作,您可能需要添加:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Official Docs: http://developer.android.com/reference/android/Manifest.permission.html 官方文档: http : //developer.android.com/reference/android/Manifest.permission.html
write it like this (with caps) 这样写(带帽)
<uses-permission android:name="android.permission.INTERNET" />
you can also try adding this: 你也可以尝试添加这个:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Mind the Capital-case. 注意资本案例。 It is "INTERNET" 这是“互联网”
有问题的权限是android.permission.INTERNET
- 注意案例很重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.