2016-04-19 7 views
0

Ich habe Internet-Erlaubnis in meinem AndroidManifest.xml hinzugefügt, aber ich bekomme immer noch Internet Permission Missing Error geworfen.Android Internet-Berechtigung fehlt

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="info.androidhive.slidingmenu" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="17" /> 

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

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="info.androidhive.slidingmenu.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> 

mir folgendes Beispiel, wie RSS-Reader zu machen: https://www.androidpit.com/java-guide-2-program-your-own-rss-reader

Ich habe alles getan Internet Erlaubnis zu geben, aber nachdem ich hinzufügen Internet-Berechtigungen, habe ich noch Erhalte einen Fehler, der besagt, dass Internetberechtigungen fehlen.

HomeFragment.java

import android.app.Fragment; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 

public class HomeFragment extends Fragment { 

    private TextView mRssFeed; 

    public HomeFragment(){} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_home, container, false); 
     mRssFeed = (TextView) rootView.findViewById(R.id.rss_feed); 
     return rootView; 
    } 

    @Override 
    public void onStart() { 
     super.onStart(); 
     new GetAndroidPitRssFeedTask().execute(); 
    } 

    private String getAndroidPitRssFeed() throws IOException { 
     InputStream in = null; 
     String rssFeed = null; 
     try { 
      URL url = new URL("http://www.androidpit.com/feed/main.xml"); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      in = conn.getInputStream(); 
      ByteArrayOutputStream out = new ByteArrayOutputStream(); 
      byte[] buffer = new byte[1024]; 
      for (int count; (count = in.read(buffer)) != -1;) { 
       out.write(buffer, 0, count); 
      } 
      byte[] response = out.toByteArray(); 
      rssFeed = new String(response, "UTF-8"); 
     } finally { 
      if (in != null) { 
       in.close(); 
      } 
     } 
     return rssFeed; 
    } 

    private class GetAndroidPitRssFeedTask extends AsyncTask<Void, Void, String> { 
     @Override 
     protected String doInBackground(Void... voids) { 
      String result = ""; 
      try { 
       result = getAndroidPitRssFeed(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      return result; 
     } 

     @Override 
     protected void onPostExecute(String rssFeed) { 
      mRssFeed.setText(rssFeed); 
     } 
    } 
} 

Log Fehlermeldung

04-19 09:01:45.882 8172-8196/info.androidhive.slidingmenu E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 
Process: info.androidhive.slidingmenu, PID: 8172 
java.lang.RuntimeException: An error occurred while executing doInBackground() 
at android.os.AsyncTask$3.done(AsyncTask.java:309) 
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
at java.lang.Thread.run(Thread.java:818) 
Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?) 
at java.net.InetAddress.lookupHostByName(InetAddress.java:464) 
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 
at java.net.InetAddress.getAllByName(InetAddress.java:215) 
at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 
at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188) 
at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157) 
at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100) 
at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357) 
at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340) 
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330) 
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248) 
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:437) 
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:388) 
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231) 
at info.androidhive.slidingmenu.HomeFragment.getAndroidPitRssFeed(HomeFragment.java:44) 
at info.androidhive.slidingmenu.HomeFragment.access$100(HomeFragment.java:17) 
at info.androidhive.slidingmenu.HomeFragment$GetAndroidPitRssFeedTask.doInBackground(HomeFragment.java:66) 
at info.androidhive.slidingmenu.HomeFragment$GetAndroidPitRssFeedTask.doInBackground(HomeFragment.java:60) 
at android.os.AsyncTask$2.call(AsyncTask.java:295) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  
at java.lang.Thread.run(Thread.java:818)  
Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname) 
at libcore.io.Posix.android_getaddrinfo(Native Method) 
at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 
at java.net.InetAddress.lookupHostByName(InetAddress.java:451) 
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)  
at java.net.InetAddress.getAllByName(InetAddress.java:215)  
at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)  
at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188)  
at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157)  
at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100)  
at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357)  
at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340)  
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)  
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)  
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:437)  
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:388)  
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231)  
at info.androidhive.slidingmenu.HomeFragment.getAndroidPitRssFeed(HomeFragment.java:44)  
at info.androidhive.slidingmenu.HomeFragment.access$100(HomeFragment.java:17)  
at info.androidhive.slidingmenu.HomeFragment$GetAndroidPitRssFeedTask.doInBackground(HomeFragment.java:66)  
at info.androidhive.slidingmenu.HomeFragment$GetAndroidPitRssFeedTask.doInBackground(HomeFragment.java:60)  
at android.os.AsyncTask$2.call(AsyncTask.java:295)  
at java.util.concurrent.FutureTask.run(FutureTask.java:237)  
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  
at java.lang.Thread.run(Thread.java:818)  
Caused by: android.system.ErrnoException: android_getaddrinfo failed: EACCES (Permission denied) 
at libcore.io.Posix.android_getaddrinfo(Native Method)  
at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)  
at java.net.InetAddress.lookupHostByName(InetAddress.java:451)  
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)  
at java.net.InetAddress.getAllByName(InetAddress.java:215)  
at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)  
at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188)  
at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157)  
at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100)  
at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357)  
at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340)  
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)  
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)  
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:437)  
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:388)  
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231)  
at info.androidhive.slidingmenu.HomeFragment.getAndroidPitRssFeed(HomeFragment.java:44)  
at info.androidhive.slidingmenu.HomeFragment.access$100(HomeFragment.java:17)  
at info.androidhive.slidingmenu.HomeFragment$GetAndroidPitRssFeedTask.doInBackground(HomeFragment.java:66)  
at info.androidhive.slidingmenu.HomeFragment$GetAndroidPitRssFeedTask.doInBackground(HomeFragment.java:60)  
at android.os.AsyncTask$2.call(AsyncTask.java:295)  
at java.util.concurrent.FutureTask.run(FutureTask.java:237)  
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  
at java.lang.Thread.run(Thread.java:818)  
+2

try Reinigung und erneut ausführen, um das Projekt –

+0

sauber und Ihres Projekts wieder aufzubauen –

+0

einen Blick auf diese haben: http://stackoverflow.com/questions/17360924/securityexception-permission-denied-missing-internet-permission :) –

Antwort

0

Sie müssen beide Berechtigungen definieren

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

und sauber & Ihr Projekt neu erstellen ..

0

Ich musste nur mein Telefon neu starten. Ich denke, dass Berechtigungen irgendwie in einem Telefon zwischengespeichert wurden und nicht aktualisiert wurden, nachdem ich "App ausführen" gedrückt hatte, aber nachdem ich mein Telefon neu gestartet hatte, wurden die Berechtigungen aktualisiert.