java.lang.SecurityException:xxxx: Neither user 10173 nor current process has android.permission.READ

废话不多说,
先上一个bug效果(两个测试机):
难受,本来想搞gif上来,结果 只能问题描述

三星某机型: 直接运行安装,会在启动页直接申请权限,如果不点击是否授权,会背景黑掉,进程stop,无论拒绝还是授予,都会重新打开app;
小米某机型:直接运行安装,会在启动页直接申请权限,如果不点击是否授权,进程崩溃,重新打开app(并且拿到了以下报错信息);

直接贴报错信息:
在这里插入图片描述
此问题我也是尝试一天多,分别从两个角度入手解决,
首先就是okhttp dispatcher 这入手,完全是个坑,网上的帖子完全没有营养,尝试了多个帖子,仍无法解决;
其次就是第二个也就是标题这个入手,可能明眼人都看出来了应该是个权限问题,然后blog就贴出了权限框架(我*********),这个回避问题的方案我给你满分;

后来我也是多次摸索 终于发现了原因,

众所周知,在6.0以后高危权限需要手动申请,一般都会使用第三方的权限框架(毕竟很多人都尝试过,肯定比自己写的更严谨),

其实这个前面是有个方法的,找到这个方法后我惊奇的发现
在这里插入图片描述在这里插入图片描述
这个static, 很多时候我们为了方便都直接写 public static xxx 然后类名点方法名调用,这样(可能)是有问题的,特别是这种需要手动授权的操作,于是就出现了上面的错误(为了忠于实际,我重新复现了一下,发现却复现不了)

我是这样猜测的:
第三方的申请权限一般是有一个隐藏的activity去申请权限,就比如andpermission中的permissionActivity,然而你这个申请权限没有static加载的早, 所以出现了以上问题;

(弱弱的说一句)我今天好像就是看到过这个报错然后改了我一个static的需要高危权限的方法,但是复现却没有复现;

此篇帖子不能说完全正确,有一定的偶然性,如果有大佬遇到相同问题,并且了解正解,麻烦留言;如果没有正解,希望这篇帖子能给你一点点提示;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值