首页 > 解决方案 > 应用程序未运行,不确定错误是什么

问题描述

我是 Udacity 的 Android 课程的学生,目前正在开发 News Feed 应用程序。这是我在我的应用程序中收到的错误。不确定我的代码的哪一部分与它一起发布,因为我还不清楚发生了什么。单击任何错误都会将我带到技术上不属于我的项目的部分文件,所以我不想意外破坏任何东西。任何帮助表示赞赏,谢谢!

E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
    Process: com.example.alexaquinones.newsfeed, PID: 8977
    java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:354)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
        at java.util.concurrent.FutureTask.run(FutureTask.java:271)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
        at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:151)
        at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:105)
        at java.net.InetAddress.getAllByName(InetAddress.java:1154)
        at com.android.okhttp.Dns$1.lookup(Dns.java:39)
        at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:175)
        at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:141)
        at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:83)
        at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:174)
        at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126)
        at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95)
        at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281)
        at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224)
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
        at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
        at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:26)
        at com.example.alexaquinones.newsfeed.QueryUtils.makeHttpRequest(QueryUtils.java:89)
        at com.example.alexaquinones.newsfeed.QueryUtils.fetchNewsData(QueryUtils.java:47)
        at com.example.alexaquinones.newsfeed.NewsLoader.loadInBackground(NewsLoader.java:43)
        at com.example.alexaquinones.newsfeed.NewsLoader.loadInBackground(NewsLoader.java:12)
        at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:319)
        at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:73)
        at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:61)
        at android.os.AsyncTask$2.call(AsyncTask.java:333)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:764) 
     Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
        at libcore.io.Linux.android_getaddrinfo(Native Method)
        at libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:172)
        at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:137)
        at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:105) 
        at java.net.InetAddress.getAllByName(InetAddress.java:1154) 
        at com.android.okhttp.Dns$1.lookup(Dns.java:39) 
        at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:175) 
        at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:141) 
        at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:83) 
        at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:174) 
        at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126) 
        at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95) 
        at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281) 
        at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224) 
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461) 
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127) 
        at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89) 
        at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:26) 
        at com.example.alexaquinones.newsfeed.QueryUtils.makeHttpRequest(QueryUtils.java:89) 
        at com.example.alexaquinones.newsfeed.QueryUtils.fetchNewsData(QueryUtils.java:47) 
        at com.example.alexaquinones.newsfeed.NewsLoader.loadInBackground(NewsLoader.java:43) 
        at com.example.alexaquinones.newsfeed.NewsLoader.loadInBackground(NewsLoader.java:12) 
        at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:319) 
        at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:73) 
        at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:61) 
        at android.os.AsyncTask$2.call(AsyncTask.java:333) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:764) 
     Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied)
        at libcore.io.Linux.android_getaddrinfo(Native Method) 
        at libcore.io.BlockGuardOs.android_getaddrinfo(BlockGuardOs.java:172) 
        at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:137) 
        at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:105) 
        at java.net.InetAddress.getAllByName(InetAddress.java:1154) 
        at com.android.okhttp.Dns$1.lookup(Dns.java:39) 
        at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:175) 
        at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:141) 
        at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:83) 
        at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:174) 
        at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:126) 
        at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:95) 
        at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:281) 
        at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:224) 
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461) 
        at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127) 
        at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89) 
        at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:26) 
        at com.example.alexaquinones.newsfeed.QueryUtils.makeHttpRequest(QueryUtils.java:89) 
        at com.example.alexaquinones.newsfeed.QueryUtils.fetchNewsData(QueryUtils.java:47) 
        at com.example.alexaquinones.newsfeed.NewsLoader.loadInBackground(NewsLoader.java:43) 
        at com.example.alexaquinones.newsfeed.NewsLoader.loadInBackground(NewsLoader.java:12) 
        at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:319) 
        at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:73) 
        at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:61) 
        at android.os.AsyncTask$2.call(AsyncTask.java:333) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:764) 

标签: javaandroid

解决方案


堆栈说:

引起:java.lang.SecurityException:权限被拒绝(缺少 INTERNET 权限?

你有权限在你的应用程序中上网吗?

在您的清单中输入:

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

https://developer.android.com/training/basics/network-ops/connecting


推荐阅读