在Android中添加层库依赖项会抑制requestPermissions对话框

在Android中添加层库依赖项会抑制requestPermissions对话框,android,permissions,Android,Permissions,我制作了一个非常非常小的演示应用程序,在运行安卓6.0.1版的Nexus5上重现了这个bug。该应用程序位于github上的以下位置: 我最近添加了两个提交,其中它以API23为目标,并在运行时请求权限,但仍然不起作用 在这2次提交中,它具有以下设置: 目标SDK:23 编译第0.20.3层 1)在提交“删除层依赖项”中,允许弹出对话框请求没有层依赖项的“perm…”: 方法ActivityCompat.requestPermissions打开一个请求联系人权限的对话框,并在方法onRequ

我制作了一个非常非常小的演示应用程序,在运行安卓6.0.1版的Nexus5上重现了这个bug。该应用程序位于github上的以下位置:

我最近添加了两个提交,其中它以API23为目标,并在运行时请求权限,但仍然不起作用

在这2次提交中,它具有以下设置:

  • 目标SDK:23
  • 编译第0.20.3层
1)在提交“删除层依赖项”中,允许弹出对话框请求没有层依赖项的“perm…”: 方法
ActivityCompat.requestPermissions
打开一个请求联系人权限的对话框,并在方法
onRequestPermissionsResult
中记录已授予权限的日志语句

2)在提交“请求权限不起作用”中,它确实具有层依赖关系:
ActivityCompat.requestPermissions
不会打开任何对话框,但仍会打印
onRequestPermissionsResult
中的日志语句,记录它没有权限


添加层依赖关系似乎抑制了在运行时请求权限的能力。为什么会发生这种情况?

幸运的是,图层支持团队能够在这方面帮助我。它解决了我在演示应用程序(针对SDK 23)和我的真实应用程序(针对SDK 22,以避免在运行时请求权限)中的问题。在我将
tools:node=“replace”
放入GET_帐户的使用权限行后,弹出对话框能够出现并在演示应用程序中授予权限,而针对SDK 22的真实应用程序中不再缺少该权限

以下是图层支持团队的详细说明:

层SDK使用 最大值为18。当舱单 合并此操作将覆盖清单中的权限请求, 因此,没有为19+请求该许可。你能试着附加一下吗 tools:node=“replace”以更改应用程序清单中的权限?这个 第行应改为:

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

有关maxSdkVersion文档,请参见此处:

有关工具:节点文档,请参见此处:

彼得


幸运的是,图层支持团队能够在这方面帮助我。它解决了我在演示应用程序(针对SDK 23)和我的真实应用程序(针对SDK 22,以避免在运行时请求权限)中的问题。在我将
tools:node=“replace”
放入GET_帐户的使用权限行后,弹出对话框能够出现并在演示应用程序中授予权限,而针对SDK 22的真实应用程序中不再缺少该权限

以下是图层支持团队的详细说明:

层SDK使用 最大值为18。当舱单 合并此操作将覆盖清单中的权限请求, 因此,没有为19+请求该许可。你能试着附加一下吗 tools:node=“replace”以更改应用程序清单中的权限?这个 第行应改为:

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

有关maxSdkVersion文档,请参见此处:

有关工具:节点文档,请参见此处:

彼得