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 -- ...
随机推荐
- C++中Reference与Pointer的不同
Reference与Pointer中直接存储的都是变量的地址, 它们唯一的不同是前者的存储的地址值是只读的, 而后者可以修改. 也就是说Reference不支持以下操作: *a = b 其他语言, 如 ...
- js点击某个图标或按钮弹出文件选择框
<HTML> <head> <script type="text/javascript" src="script/jquery-1.6.2. ...
- bzoj4199:NOI2015D2T2品酒大会(SAM版)
SAM感觉写起来比SA更直观(?) #include <iostream> #include <cstdio> #include <cstring> #includ ...
- [JavaEE]设计模式之SOLID原则
1. S The Single Responsibility Principle 单一责任原则 当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THA ...
- <<< 数据库基础知识
相关概念: 1.数据 (DATA) : 数据是描述现实世界事物的符号标记, 是指用物理符号记录下来的可以鉴别的信息. 包括:数字.文字.图形.声音.及其他特殊符号 2.数据库(DATABASE) :按 ...
- red hat关于桥接模式连不上外网或者没有IP
很多人·在启动虚拟机后连接不上外网,即ifconfig没有ip地址,我总结了一下需要注意的地方: 以下全是在桥接模式. 1.在windows中打开任务管理器-->服务中找到一下几个服务,确保它们 ...
- HTML3
1. HTML5新增的标签 主体结构标签, 用来做布局.比div更具语义 <header> 定义文档的页眉 <nav> 定义导航链接的部分 <article> 规定 ...
- angularjs自带过滤器
filter: filter过滤器第一个参数若是对象: <ul> <li ng-repeat="friend in friends | filter:{'name':'Jo ...
- Web jquery表格组件 JQGrid 的使用 - 5.Pager翻页、搜索、格式化、自定义按钮
系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...
- [Unity3D]粒子系统学习笔记
粒子阴影的处理 通过Material填充粒子系统的render后,默认是显示阴影的: 可以通过设置来调整: 调整后的效果, 每个粒子就没有阴影了 增加粒子效果 设置为合成的材质,效果显示加倍: 添加子 ...