2011-08-19 26 views
41

mio LogCat legge:SocketException: autorizzazione negata?

08-19 09:29:01.964: WARN/System.err(311): java.net.SocketException: Permission denied 
08-19 09:29:02.204: WARN/System.err(311):  at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocketImpl(Native Method) 
08-19 09:29:02.214: WARN/System.err(311):  at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocket(OSNetworkSystem.java:186) 
08-19 09:29:02.214: WARN/System.err(311):  at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:265) 
08-19 09:29:02.224: WARN/System.err(311):  at java.net.Socket.checkClosedAndCreate(Socket.java:873) 
08-19 09:29:02.224: WARN/System.err(311):  at java.net.Socket.connect(Socket.java:1020) 
08-19 09:29:02.224: WARN/System.err(311):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62) 
08-19 09:29:02.224: WARN/System.err(311):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88) 
08-19 09:29:02.224: WARN/System.err(311):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTPConnection(HttpURLConnectionImpl.java:927) 
08-19 09:29:02.224: WARN/System.err(311):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:909) 
08-19 09:29:02.234: WARN/System.err(311):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:1152) 
08-19 09:29:02.234: WARN/System.err(311):  at java.net.URL.openStream(URL.java:653) 
08-19 09:29:02.244: WARN/System.err(311):  at around.lowell.Main.onCreate(Main.java:57) 
08-19 09:29:02.244: WARN/System.err(311):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-19 09:29:02.244: WARN/System.err(311):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
08-19 09:29:02.244: WARN/System.err(311):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
08-19 09:29:02.244: WARN/System.err(311):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
08-19 09:29:02.244: WARN/System.err(311):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
08-19 09:29:02.244: WARN/System.err(311):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-19 09:29:02.244: WARN/System.err(311):  at android.os.Looper.loop(Looper.java:123) 
08-19 09:29:02.244: WARN/System.err(311):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
08-19 09:29:02.254: WARN/System.err(311):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-19 09:29:02.254: WARN/System.err(311):  at java.lang.reflect.Method.invoke(Method.java:521) 
08-19 09:29:02.254: WARN/System.err(311):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
08-19 09:29:02.264: WARN/System.err(311):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
08-19 09:29:02.264: WARN/System.err(311):  at dalvik.system.NativeStart.main(Native Method) 

Il codice che ho recentemente implementato che sta generando questo errore per nella mia app Android è:

 FileOutputStream fOut = null; 
     try { 
      fOut = this.openFileOutput("employeeInformation.xml", MODE_PRIVATE); 
      try { 
       InputStream is = new URL("http://totheriver.com/learn/xml/code/employees.xml").openStream(); 
       int size = is.available(); 
       byte[] buffer = new byte[size]; 
       is.read(buffer); 
       is.close(); 
       fOut.write(buffer); 
      } catch(Exception e) { 
       e.printStackTrace(); 
      } 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       fOut.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

Qualcuno sa qual è il problema?

+0

@William la domanda è stata posta il 30 giu '12 questa domanda il 19 agosto '11 quasi un anno prima ... –

risposta

116

Aggiungi il permesso Internet sul manifesto:

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

Beh, è ​​stato molto più semplice del previsto .. grazie mille! – Mxyk

+0

omg, che ha risolto il mio problema, grazie mille – curiousguy

+1

Ho dovuto riavviare il mio emulatore e quindi ri-distribuire nuovamente prima che la modifica diventasse effettiva. – jcalfee314

2

Hai bisogno di andare al file manifesto nel progetto dell'applicazione Android poi sopra application sezione successiva per altre autorizzazioni aggiungere: android.permission.INTERNET

Il vostro manifesto dovrebbe guardare qualcosa di simile:

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

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="18" /> 
.... 
<uses-permission android:name="android.permission.INTERNET" /> 
... 
<application 
android:allowBackup="true" 
.... 

tenere a mente il valore (android.permission.INTERNET) è caso sen sitive.

Spero che questo ti salvi un po 'di tempo.

Problemi correlati