2011-08-19 45 views
41

Mi LogCat lee:SocketException: ¿Permiso denegado?

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) 

El código que he implementado recientemente que está generando este error en mi aplicación Android es:

 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(); 
      } 
     } 

¿Alguien sabe cuál es el problema?

+0

@William se formuló la pregunta 30 de junio de 2012 esta pregunta el 19 de agosto de 2011 casi un año antes ... –

Respuesta

116

Añadir permisos de Internet a su manifiesta:

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

Bueno, eso fue mucho más simple de lo esperado ... ¡muchas gracias! – Mxyk

+0

omg, eso resolvió mi problema, muchas gracias – curiousguy

+1

Tuve que reiniciar mi emulador y volver a implementarlo antes de que el cambio tuviese efecto. – jcalfee314

2

que necesita para ir a su archivo de manifiesto en su proyecto de aplicación Android a continuación, por encima de application sección junto a otros permisos añadir: android.permission.INTERNET

Su manifiesta debe buscar algo como esto:

<?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" 
.... 

tener en cuenta el valor (android.permission.INTERNET) es caso sen sitivo.

Espero que esto te ahorre algo de tiempo.