记一次Android11找不到存储权限开关的问题

问题出现:用户反映更新头像失败,提示获取权限失败,并且在权限中列表中找不到储存权限的管理开关。

排查:

1,其他app是否存在同样问题?经排查除了自己app以外其他app都没问题。

2,是否是targetApi的问题,通过反编译发现别人家的app和自家apptargetApi一样,且在反编译包过程中发现一个有趣的东西。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29"/>

android:maxSdkVersion="29"这个属性,虽然自己很少用过,但是看其语义就猜测是与本次Android11没有权限管理入口有关,因为Android11的ApiLevel是30,很明显是超过29的,所以锁定在这条属性上。

解决思路:

1,进入app module下的manifest中,查看混合后的manifest,但是并没有发现android:maxSdkVersion="29"这条属性。

2,进行全局搜索android:maxSdkVersion="29",最终在一个第三方lib中找到了该条属性,找到了问题所在。

解决方法:

加入tools:node="replace"属性,使其无效或移除该第三方lib,类似这样

<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="replace" />

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,929评论 2 59
  • 今天早上做了一个android的App的一个蓝牙模块,刚开始使用了第三方的蓝牙操作库(为了偷懒)。。。调试的时候却...
    Super_圣代阅读 4,269评论 0 1
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,045评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,104评论 0 4