问题
排查方向
- 首先确认自己的项目AndroidManifest.xml 有没有使用到这个权限,如果有就去掉
- Ctrl+Shift+F 全局搜索选择Scope看看有没有引入的第三方插件使用到这个权限
- 1,2都确认了Google play还提示这个权限问题就需要点击问题了解详情看看具体是哪个包有这个问题(这个可以关注一下,本人就是在这个被坑的)
解决方法
-
如果自己的AndroidManifest.xml里有这个权限,但是是非必须的可以直接删除掉
-
如果自己的AndroidManifest.xml里有这个权限,但是是必须的,则可以删除采用替代方法
例如:接入微信分享等文档原来是需要申请这个权限的,现在可以删掉替换成queries声明
<queries>
<package android:name="com.tencent.mobileqq"/>
<package android:name="想要判断的应用包名"/>
</queries>
3. 全局搜索发现如果是引入的第三方插件库使用到这个权限申请,则可以在自己的AndroidManifest.xml里面 remove掉这个权限
<!--移除读取已安装应用列表权限-->
<uses-permission
android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission"
tools:node="remove" />
4. 有概率会出现编辑器自带权限申请,可以通过编辑器搜索这个权限然后关闭掉再打包
- 可以通过命令反编译apk看看自己打包的apk里面是不是真的没有这个权限了
aapt dump permissions xxx.apk
6. 以上都操作了 Google play还是提示QUERY_ALL_PACKAGES权限违规,则需要检查提示的具体是哪个版本的aab. 需要把内部测试,封闭式测试,开放测试里面之前有提交审核旧版本的aab都更新到最新. 我的就是因为内部测试的包是旧版本没修改之前导致一直卡着不能发布正式版本,将内部测试的更新后就可以