2011-08-19 61 views
41

我logcat的写着:SocketException:权限被拒绝?

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) 

,我最近实施,它是产生这个错误在我的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(); 
      } 
     } 

有谁知道问题是什么?

+0

@William问这个问被问到2012年6月30日这个人问8月19 '11几乎一年早... –

回答

116

添加Internet权限到您的清单:

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

那么这是比预期简单得多..非常感谢你! – Mxyk

+0

omg,这解决了我的问题,非常感谢你 – curiousguy

+1

我必须重新启动我的模拟器,然后在更改生效之前重新部署。 – jcalfee314

2

你需要去您的清单文件在你的Android应用程序项目,然后上面application部分旁边其他权限添加:android.permission.INTERNET

你的表现应该看看是这样的:

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

牢记值(android.permission.INTERNET)的情况下,仙sitive。

希望这可以为您节省一些时间。