本文主要是介绍【Android】java.lang.SecurityException: getDeviceId: Neither user xxxxx nor current process has andro,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 错误异常
- 产生原因
- 解决办法
- 参考链接
错误异常
java.lang.SecurityException: getDeviceId: Neither user xxxxx nor current process has android.permission.READ_PHONE_STATE.
这里的getDeviceId可能是获取系统状态或内容的操作,最后的android.permission.READ_PHONE_STATE 也可能是其它权限,具体可以查看 Android文档中的权限分组 。
产生原因
使用Android Studio编译项目的时候将 app/build.gradle 中的 defaultConfig 设置中的 targetSdkVersion 设置为了23, 这样 Android Studio在编译的时候会使用 Android 23 API即Android 6.0来编译项目,但是,如果你没有给项目加上动态权限请求的话,你的应用在安装到手机的时候将不会获取任何权限!!!可以去查看应用的应用信息,其中的 Permissions 权限列表中所有的权限组都是关闭状态。
解决办法
如果你需要紧急避免自己的应用继续在Android 6.0的系统上崩溃,可以将app/build.gradle中的 targetSdkVersion和compileSdkVersion设置为22或以下版本,这样的话,编译出来的app会在Android 6.0上以兼容模式运行,可以获取需要的权限,但随着Android 6.0的普及,我还是推荐大家尽量给项目加上动态权限时的判断以及逻辑处理。
参考链接
http://stackoverflow.com/questions/33078003/android-6-0-permission-error
http://stackoverflow.com/questions/32742327/neither-user-10102-nor-current-process-has-android-permission-read-phone-state
转载自:http://www.th7.cn/Program/Android/201604/841700.shtml
这篇关于【Android】java.lang.SecurityException: getDeviceId: Neither user xxxxx nor current process has andro的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!