如何在代码中查找所需的Android Marshmallow运行时权限?

6

我正在为我的应用程序准备目标Android 6.0 Marshmallow。

将目标API设置为23时,应用程序在启动时立即崩溃。日志输出中没有有用的信息。(会出现“请求的窗口不存在”IllegalStateException,但仍然没有实际有用的类名或行号。)

这没关系(实际上并不是),我最终将其缩小到了我的启动活动,在该活动中获取用户设备IMEI代码(TelephonyManager.getDeviceId())。需要添加运行时权限请求。我明白这一点。

然而,该应用程序有大约60个类跨越多个活动,因此需要排序大量代码。我怎么可能搜寻整个代码以找到所有需要运行时权限的情况?

肯定谷歌想过一种简单的方法来帮助开发人员跟踪权限请求的位置吧?我认为也许注释掉清单中的权限会触发编译时错误,以便在使用权限时进行处理,或者类似的东西,但没有。

我的当前方法是,当应用程序崩溃时,像上面所述对我的启动活动进行操作,然后非常缓慢地缩小范围。这是极其低效和耗时的。我想现在就将其留在API 22上,但我知道迟早必须这样做。


嗨,你能发送构建等级的XML文件吗? - Ben_Gratvol
1
在Android Studio中尝试使用“分析”>“检查代码”。 - CommonsWare
谢谢,但是“Inspect Code”不能解决这个问题。 - S Fitz
你好,请尝试使用API级别23 https://dev59.com/J1wX5IYBdhLWcg3w-Thv#41221852 - Bipin Bharti
2个回答

2

1
我的方法是这样的: 分析 -> 通过名称运行检查 -> 缺少权限

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接