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 -- ...
随机推荐
- 读取本地外网IP地址
读取本地外网IP地址. 根据启动并运行的网卡名称,找到本机实际的IP地址(已知当前运行的无线网卡名包含某一个字符) import java.net.InterfaceAddress; import j ...
- python基于Django框架编译报错“django.core.exceptions.ImproperlyConfigured”的解决办法?
下面是我具体遇到的问题和解决方法: 错误详细信息: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_IND ...
- 【poj2065】 SETI
http://poj.org/problem?id=2065 (题目链接) 题意 题意半天看不懂..给你一个素数P(P<=30000)和一串长为n的字符串str[].字母'*'代表0,字母a-z ...
- SQL查询为什么不推荐使用select count(*)
select count(1). count(字段名) .count(*) 的区别
- Unity 难点目录
1.mesh的任意切割.(难点) 2.扇形区域识别玩家.(解决) 3.NGUI横滑同时竖滑,或滑动同时点击冲突处理.(解决)
- ionic ios 发布设置 header-bar高度无效
在公司app发布过程中发现一旦改过header-bar的高度之后在ios内部或者通过ionic build browser生成的网页打开都不是正常的 通过chrome的查看工具发现自己写的样式被直接覆 ...
- php常用字符串函数小结
php内置了98个字符串函数(除了基于正则表达式的函数,正则表达式在此不在讨论范围),能够处理字符串中能遇到的每一个方面内容,本文对常用字符串函数进行简单的小结,主要包含以下8部分:1.确定字符串长度 ...
- js分页小结
今天解决了JS分页的问题1 页码 给每页的内容套一个相同的类名 通过选择器加上.length或者.size() 来获得总页数2当前页的页码可以使用each(function(index,DOMsss ...
- OC JS交互(通常情况下,如果网页写得正规的话,是可以正常交互的,之前就遇到后台写h5始终拿不到事件,元素也拿不到,更别说交互了,真是奇了怪了)
自动填充表单 @"document.getElementById('loginid').value = '这里填入你的用户名';document.getElementById('userpa ...
- DiskFileItemFactory类的使用
将请求消息实体中的每一个项目封装成单独的DiskFileItem (FileItem接口的实现) 对象的任务由 org.apache.commons.fileupload.FileItemFact ...