我创建了我的Android应用程序来链接“www.Google.com”.但我总是得到这样的例外:
07-20 16:50:31.137: W/System.err(19007): java.net.socketException: Permission denIEd07-20 16:50:31.137: W/System.err(19007): at org.apache.harmony.luni.platform.OSNetworkSystem.socket(Native Method)07-20 16:50:31.137: W/System.err(19007): at dalvik.system.BlockGuard$WrappednetworkSystem.socket(BlockGuard.java:335)07-20 16:50:31.137: W/System.err(19007): at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:219)07-20 16:50:31.137: W/System.err(19007): at java.net.socket.checkOpenAndCreate(Socket.java:832)07-20 16:50:31.137: W/System.err(19007): at java.net.socket.connect(Socket.java:978)07-20 16:50:31.137: W/System.err(19007): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)07-20 16:50:31.137: W/System.err(19007): at org.apache.http.impl.conn.DefaultClIEntConnectionoperator.openConnection(DefaultClIEntConnectionoperator.java:143)07-20 16:50:31.137: W/System.err(19007): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)07-20 16:50:31.147: W/System.err(19007): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)07-20 16:50:31.147: W/System.err(19007): at org.apache.http.impl.clIEnt.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)07-20 16:50:31.147: W/System.err(19007): at org.apache.http.impl.clIEnt.AbstracthttpClIEnt.execute(AbstracthttpClIEnt.java:555)07-20 16:50:31.147: W/System.err(19007): at org.apache.http.impl.clIEnt.AbstracthttpClIEnt.execute(AbstracthttpClIEnt.java:487)07-20 16:50:31.147: W/System.err(19007): at org.apache.http.impl.clIEnt.AbstracthttpClIEnt.execute(AbstracthttpClIEnt.java:465)07-20 16:50:31.147: W/System.err(19007): at com.xenos.httpclIEnttest.httpClIEntTest.onClick(httpClIEntTest.java:60)07-20 16:50:31.147: W/System.err(19007): at androID.vIEw.VIEw.performClick(VIEw.java:2532)07-20 16:50:31.147: W/System.err(19007): at androID.vIEw.VIEw$PerformClick.run(VIEw.java:9291)07-20 16:50:31.147: W/System.err(19007): at androID.os.Handler.handleCallback(Handler.java:587)07-20 16:50:31.147: W/System.err(19007): at androID.os.Handler.dispatchMessage(Handler.java:92)07-20 16:50:31.147: W/System.err(19007): at androID.os.Looper.loop(Looper.java:150)07-20 16:50:31.147: W/System.err(19007): at androID.app.ActivityThread.main(ActivityThread.java:4293)07-20 16:50:31.147: W/System.err(19007): at java.lang.reflect.Method.invokeNative(Native Method)07-20 16:50:31.147: W/System.err(19007): at java.lang.reflect.Method.invoke(Method.java:507)07-20 16:50:31.147: W/System.err(19007): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)07-20 16:50:31.147: W/System.err(19007): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:607)07-20 16:50:31.147: W/System.err(19007): at dalvik.system.NativeStart.main(Native Method)
我还将权限添加到Manifest.xml中
<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"package="com.xenos.study.httpclIEnttest"androID:versionCode="1"androID:versionname="1.0" ><uses-sdk androID:minSdkVersion="10" /><uses-permission androID:name="androID.permission.INTERNET"/><application androID:icon="@drawable/ic_launcher" androID:label="@string/app_name" > <activity androID:name=".httpClIEnt" 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>
整个代码在这里:
public class httpClIEntTest extends Activity {private httpClIEnt httpClIEnt ;private httpGet httpGet ;private httpResponse httpResponse ;private httpentity httpentity ;private BufferedReader br ;private button link ;private EditText show ;private String path = "http://74.125.71.104";/** Called when the activity is first created. */@OverrIDepublic voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); link = (button) findVIEwByID(R.ID.link); show = (EditText) findVIEwByID(R.ID.show); httpClIEnt = new DefaulthttpClIEnt () ; httpGet = new httpGet(path); link.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { try { httpResponse = httpClIEnt.execute(httpGet); httpentity = httpResponse.getEntity(); br = new BufferedReader(new inputStreamReader(httpentity.getContent())); String str = null ; while ((str = br.readline())!=null) { } } catch (ClIEntProtocolException e) { // Todo auto-generated catch block e.printstacktrace(); } catch (IOException e) { // Todo auto-generated catch block e.printstacktrace(); } } }); } }
这让我感到沮丧,谢谢你的帮助.
解决方法:
更新(来自评论)
你必须添加
<uses-permission androID:name="androID.permission.INTERNET"/>
到你的清单
原始回复
add< uses-permission androID:name =“androID.permission.ACCESS_NETWORK_STATE”/>这对你的清单和检查.
总结以上是内存溢出为你收集整理的java.net.SocketException:对于android的权限被拒绝全部内容,希望文章能够帮你解决java.net.SocketException:对于android的权限被拒绝所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)