A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1黑马币
Caused by:java.lang.SecurityException:Permission Dinal



乍一看学生抛的这个错误,以为是权限的问题,然后学生就开始问了。

老师:为什么我写的代码和老师一样,然而我一运行就报了这个错误啊。清单文件里面老师加的权限我也加了啊!
当我看到这个问题的时候,我一看也以为是权限的问题,我再仔细看又没有说明具体的权限,这和清单文件里面权限不一样
然后我仔细看了学生的环境,发现他用的模拟器是18,而老师上课用的是16,那就是API版本不一样所产生的问题了

这是我给学生的解决方法,方法就是在清单文件中给要外部调用的ContentProvider 设定一个属性 : android:exported="true"
  1. <provider android:name=".PrivProvider"
  2.     android:authorities="cn.wei.flowingflying.propermission.PrivProvider"
  3. <b><font color="#ff0000">    android:exported="true"</font></b> />
复制代码

下面是问题产生的原因,API文档中已经给出了说明


在API16之前是不需要增加exported=“true”,因为默认值就是这个
从API17开始默认值是exported="false",所以如果需要外部访问的话就必须手动指定为android:exported="true"


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马