Android之EACCES (Permission denied)与Permission denied异常探密
话说,Accipiter君,最近又开始怒学Android了,记得刚开始还是09年学的,现在的手机还是华为出的最早的一款Android手机C8500,那时候就想好好学习Android,赚点小钱,可是~~~没有坚持学习!遗恨这么几年啊!所以现在从头学习Android确有一种考古探密的感觉啊!进入正题吧,今天就对Android中的一个经典的异常进行一次探密行吧。。
一、进入密室
嗯,一是我想从浩瀚的Internet抓点东西,二是我想给浩瀚的Internet提供点东西,自己搭个服务,如何让小伙伴们看到了,现在的小伙伴们都流行移动,也得整个移动的平台吧。无奈,写了几句代码,就报了个java.net.ConnectException: socket failed: EACCES (Permission denied)异常。它就像个进入密室的门,从此就得去密室观光一番。
二、密室见闻
碰到问题,先看了日志,虽然是小白,但是有Internet大神在身边,相信神马都不是秘密!马上就搜索!搜索之,哈,难兄难弟还真多!有直接就是这个问题的【http://www.cnblogs.com/Lewis/p/3298994.html】,还有就是:java.io.IOException: open failed: EACCES (Permission denied)【http://blog.csdn.net/liranke/article/details/17239977】,总结之,都是和Permission【http://hi.baidu.com/spare_h/item/1c1b4ee8941e04f0e1a5d4cd】有关系。 神马?还有和JDK有关系的【https://www.java.net/node/703177】。
三、密室揭秘
1.最直接的就是java.net.ConnectException: socket failed: EACCES (Permission denied)异常,这个只需要在AndroidManifest.xml中加上:
<uses-permission android:name="android.permission.INTERNET"/>
2.什么?加上了,还是没看到真相啊!哦,你加的位置对吗?【http://stackoverflow.com/questions/8854359/android-open-failed-eacces-permission-denied】中有位置加错的解决方案,但是我用的Android是不建议加在:
</application>
</manifest>
之间的位置的,给报一个警告,我放到<application>上边去之后,就好了。
3.啊,位置对了,怎么还是没看到真相?那就看你用的Android的版本,这时候的log应该是报:android.os.NetworkOnMainThreadException异常按照【http://www.cnblogs.com/Lewis/p/3298994.html】的说法,基本上4.0之后的版本由于Android考虑到可能引起阻塞,程序假死的情形,就不推荐activity中直接写了,你要真想用的加上:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());
加到什么位置?这个我是加到了java文件连接请求的开始位置。
但是经过我用3.0的虚拟机测试,报java.lang.SecurityException: Permission denied (missing INTERNET permission?)异常,之后依旧报:
android.os.NetworkOnMainThreadException异常。用同样的方式也可以解决。
4.正常真相应该已经明了,但是JDK神马的有影响的话,这里也有个解决方案:More digging around and it seems the VPN client has IPv6 disabled which is causing issues with JDK7.If I use the following flag -Djava.net.preferIPv4Stack=true I no longer see the errors. 出自【https://www.java.net/node/703177】
5.还是不行,那你可以尝试所有的都重启一下,重新来过吧【http://stackoverflow.com/questions/17549920/socket-failed-eacces-permission-denied】
6.我的疑团,经过这几番的折腾,看了不少的疑点,也有不少的释疑。但是,我疑团已然还在,奈何!艹,居然把AndroidManifest.xml中的android.permission.INTERNET写成了android.premission.INTERNET!这~~~~原来一切的疑问都是自己问自己~~~一切的疑团都是自己怀疑自己~~一切的恐怖都是自己吓唬自己!
探密结束!
Android之EACCES (Permission denied)与Permission denied异常探密的更多相关文章
- Xamarin.Android UnauthorizedAccessException: Access to the path is denied
进行文件读写,勾选了权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" / ...
- Android filesystem system rw(read/write) permission
/********************************************************************************* * Android filesys ...
- Android 静默安装/后台安装& Root permission
Android 静默安装/后台安装& Root permission 静默安装其实很简单,今天在网上找资料找半天都说的很复杂,什么需要系统安装权限.调用系统隐藏的api.需要系统环境下编译.需 ...
- Android adb shell data目录,Permission denied
Android adb shell进入data目录,Permission denied 权限被拒绝 在shell里面输入su root,去申请root权限,注意:有小部分手机是需要点击授权,再次执行c ...
- Android开发 adb命令提示:Permission denied (转)
如题:模拟器版本->android 7.1.1 遇到这样的情况把模拟器root一下就好了:su root =============2017年4月3日20:57:33============== ...
- Appium运行时没有启动activity的权限:A new session could not be created.(Original error: Permission to start activity denied)
小白搞appium,遇到启动不了activity的问题: 查找解决方案说是跟AndroidManifest.xml有关系,参考:https://github.com/appium/appium/iss ...
- Apache 403 error, (13)Permission denied: access to / denied问题
Apache 配置Alias 后,无法访问 CentOS系统 检查了一圈httpd.conf和目录权限,均没有发现问题. 最后,看了这篇文章,发现是因为系统启动了SELINUX导致的. http:// ...
- appnium启动报错Encountered internal error running command: Error: Error occured while starting App. Original error: Permission to start activity denied.
说明写错了activity 首先查看一下activity,使用命令 打开被测app,输入命令adb shell dumpsys window | findstr mCurrentFocus 看似这个a ...
- git push 到github时,报错:ERROR: Permission to xxx.git denied to user
之前我电脑的本地git已经登录了一个github账号,今天想换另外一个新的github账户来提交项目,相当于同一台电脑使用两个github账户. 于是我先修改用户名和邮箱. git config -- ...
随机推荐
- 图片加载框架Fresco与V4包冲突解决方法
- hdu2874 LCA在线算法
Connections between cities Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- SQL0946N错误及DB2事务日志
在对DB2数据库进行批量增删的时候, 如果数据量比较大会导致SQL0964N错误, DB2 Knowledge center(http://pic.dhe.ibm.com/infocenter/db2 ...
- VBScript使用CDO.Message发送邮件
Const Email_From = "from@163.com" Const Password = "password" Const Email_To = & ...
- shell知识点小结
目录 引言 shell中的数组 数组的定义 数组的使用 实际的例子 shell中大小的比较 shell中的括号 shell中函数的定义 杂项知识点 字符串转数组 常用判断标志 linux后台运行相关 ...
- Codeforces 2016 ACM Amman Collegiate Programming Contest B. The Little Match Girl(贪心)
传送门 Description Using at most 7 matchsticks, you can draw any of the 10 digits as in the following p ...
- hibernate-criteria查询(二)
Restrictions 类的作用是什么? Criteria 接口没有 iterate() 方法. Criteria 查询如何对查询结果排序.分页? Criteria 查询如何实现关联? ...
- nginx虚拟主机配置小结
nginx的安装在lnmp环境搭建中已经介绍过了,配置文件在安装目录下的conf子目录下,主要主要分成四部分:main(全局设置).server(主机设置).upstream(负载均衡服务器设置).l ...
- 【转】精选30个优秀的CSS技术和实例
今天,我为大家收集精选了30个使用纯CSS完成的强大实践的优秀CSS技术和实例,您将在这里发现很多与众不同的技术,比如:图片集.阴影效果.可扩展按钮.菜单等-这些实例都是使用纯CSS和HTML实现的. ...
- debian 缺少固件怎么解决
一般是安装的时候会遇到这个问题.http://www.debian.org/releases/stable/amd64/ch02s02.html.en 解决办法是先下载对应debian版本的firmw ...