android 6.0以下系统 应用出现crash,报错:使用android.permission.READ_PHONE_STATE权限出现SecurityException异常
开发环境:android studio2.0 SDK23。
具体出现问题:JNI DETECTED ERROR IN APPLICATION: JNI NewStringUTF called with pending exception java.lang.SecurityException: getDeviceId: Neither user 10186 nor current process has android.permission.READ_PHONE_STATE.
以上错误是在6.0以上系统运行应用直接crash,打印出来的日志。错误的原因就是:android 6.0系统有些危险的权限需要动态判断,由用户去选择是否允许授权的。
具体解决的demo:
[https://github.com/SpikeKing/wcl-permission-demo]
如果是使用的这个权限的是第三方的,而我们不知道具体是在哪里使用了该权限,可以在用户刚进入的时候进行动态判断,如欢迎页。
本人被这个错误坑了一天,因为READ_PHONE_STATE权限不是由本人写入使用,而是项目引用第三方平台萤石云使用到的。之前在eclipse上并没有出现这个问题,是因为eclipse 设置的SDK是22版本的。