java.net.SocketException: socket failed: EACCES (Permission denied)联网权限已经设置了还是报错的两个原因及解决方案
2015-07-02 09:31
465 查看
最近在移动开发的时候遇到了java.net.SocketException: socket failed: EACCES (Permission denied),
但是我也在manifest中设置了联网权限<uses-permission android:name="android.permission.INTERNET" />
经过我的尝试终于找到了解决方案:
1:出错原因:是因为把联网的操作写在主线程中,从android 4.0以后就不允许这样操作了,
因为如果在主线程里联网,如果网络不好那么整个程序就卡死在那里了。
解决方案:所以android4.0以后对要联网的代码必须在新开一个线程来做。
2:出错原因:主要针对小米手机:小米Android4.0系统网络问题导致的,就算加上联网权限还是会报这个错误
解决方法:在使用的网络的Activity中的onCreate()方法中加上
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
.penaltyLog().build());就ok了
但是我也在manifest中设置了联网权限<uses-permission android:name="android.permission.INTERNET" />
经过我的尝试终于找到了解决方案:
1:出错原因:是因为把联网的操作写在主线程中,从android 4.0以后就不允许这样操作了,
因为如果在主线程里联网,如果网络不好那么整个程序就卡死在那里了。
解决方案:所以android4.0以后对要联网的代码必须在新开一个线程来做。
2:出错原因:主要针对小米手机:小米Android4.0系统网络问题导致的,就算加上联网权限还是会报这个错误
解决方法:在使用的网络的Activity中的onCreate()方法中加上
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
.penaltyLog().build());就ok了
相关文章推荐
- Java并发编程:阻塞队列
- springAOP日志记录数据库项目实例
- JAVA的用途是什么?如果学好JAVA能干什么【转】
- 《编程导论(Java)·3.2.4 循环语句》
- Java8 Lambda表达式教程
- 疯狂java讲义之多线程
- Java基础之集合
- 《JAVA程序设计》实训第三天——《猜猜看》游戏
- easyui和springmvc上传文件
- 《Java课程实习》日志(周三)
- 网页头部的声明
- Java的split方法使用详解
- Eclipse优化设置
- springMVC传值方式
- java基础入门-多线程同步浅析-以银行转账为例子
- java基础入门-多线程同步浅析-以银行转账为例子
- Java三大框架 [转]
- 使用java的Calendar对象获得当前日期
- JAVA转让JS功能
- 《JAVA程序设计》实训第一天——《猜猜看》游戏