Android Studio 3.0 lint找不到缺少的权限

Android Studio 3.0 lint找不到缺少的权限,android,android-permissions,android-studio-3.0,android-lint,Android,Android Permissions,Android Studio 3.0,Android Lint,我的代码中有几个地方在调用需要权限的函数之前没有正确检查权限状态。因此,当我的用户遇到不受保护的函数调用时,我会收到随机的SecurityException报告 (长篇介绍,如果是tl;dr,请跳到最后一段) 该代码最初是在安卓棉花糖引入按需权限之前很久编写的。在迁移时,它几乎是在“首次出现”的基础上进行测试的,这意味着识别了所需权限的首次出现,并围绕这一点编写了适当的任务前检查/请求代码 但是,一旦通过,用户可能会决定撤销已授予的权限,并且我的应用程序将不会遇到第一个出现的代码路径。相反,将运

我的代码中有几个地方在调用需要权限的函数之前没有正确检查权限状态。因此,当我的用户遇到不受保护的函数调用时,我会收到随机的
SecurityException
报告

(长篇介绍,如果是tl;dr,请跳到最后一段)

该代码最初是在安卓棉花糖引入按需权限之前很久编写的。在迁移时,它几乎是在“首次出现”的基础上进行测试的,这意味着识别了所需权限的首次出现,并围绕这一点编写了适当的任务前检查/请求代码

但是,一旦通过,用户可能会决定撤销已授予的权限,并且我的应用程序将不会遇到第一个出现的代码路径。相反,将运行“已激活”的代码路径,导致SecurityException,因为不再授予相关权限

显然,我正在努力寻找受影响的代码段,因此我(再次)尝试通过使用lint来确定需要权限的函数。网站上有一些帖子正在处理这个问题

然而,我没有成功地设置lint工具,使其能够实际识别调用需要权限的函数的代码行。我所得到的只是一行识别的代码,其中警告我要么在
checkpermisson
中包装调用,要么显式捕获
SecurityException

这当然是不够的,因为我知道我的应用程序需要7个不同的权限,而且我非常确定所涉及的功能也存在(因为我已经包装了其中的一些功能)

不管怎样,我猜这需要某种方式设置。目前,除了颜色设置和代码格式设置外,我使用的几乎都是香草安卓Studio 3.0.1。没有涉及任何代码检查

在花了两天的时间尝试使用我所有的googlefu&sofu设置lint工具之后,我放弃了写这个问题。是的,我已经从清单中删除了权限

如果这有什么不同的话,我正在使用库和口味


你能给我一个关于lint需要做什么才能成功识别需要权限的函数的分步指导吗?

我知道这是一个老问题,但我有一种方法来识别哪里缺少权限检查

  • 在Android Studio的项目选项卡中,使用视图作为项目
  • 右键单击包含所有java代码的文件夹
  • 转到分析>检查代码
  • 一个指定检查范围对话框将提示,在这里您可以选择将检查缺少权限的目录,在这种情况下,由于我们以前选择了文件夹,默认范围将是我们以前的文件夹,单击确定
  • 开始搜索代码中的错误、警告等时,扫描所需的时间取决于项目的大小
  • 完成后,您可以看到错误、警告等列表,您需要转到Android Lint:correction>Missing Permissions
  • 这是查找项目中所有缺少权限错误的简单方法


    我希望这是有用的。

    我怀疑只有一小部分Android SDK具有向IDE报告是否需要特定权限所需的适当信息。因此,基本上,我只需要对我的代码库进行彻底检查?是否存在一些永远无法识别的权限?e、 g.写入设置、系统警报窗口、获取任务、软件包使用情况统计-这些都没有报告。我的意思是-其中有些很容易识别,有些不太容易识别…“有些权限永远不会被识别?”--差不多,是的。请注意,
    WRITE\u SETTINGS
    SYSTEM\u ALERT\u WINDOW
    首先是奇怪的权限(不使用标准的运行时权限系统)。是的,我的应用程序是自动亮度应用程序。启动起来相当晦涩,安卓9(禁止后台运行服务)肯定已经过时,但现在它仍然是我的“学习你的安卓”项目,我喜欢修补它。我想在失去它可以运行的设备之前,再尝试一下它的功能。