【问题标题】:Exception java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:异常 java.lang.RuntimeException: 传递结果失败 ResultInfo{who=@android:requestPermissions:
【发布时间】:2017-04-27 11:48:16
【问题描述】:

我在崩溃报告中遇到了这个异常,但我自己无法重现崩溃。似乎一切正常,但不知何故它发生在少数用户身上。有人遇到过类似的问题吗?

    Exception java.lang.RuntimeException: Failure delivering result 
    ResultInfo{who=@android:requestPermissions:, request=22, result=0, 
    data=null} to activity {}: java.lang.SecurityException: "network" 
    location 
    provider requires ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION 
    permission.

【问题讨论】:

  • 要么您从未请求过运行时权限,要么用户撤销了它们而您没有再次请求这些权限。
  • @CommonsWare 我在运行时请求权限
  • 然后用户撤销了他们,你没有重新请求这些权限。也许您的权限检查位于错误的位置。

标签: android permissions location


【解决方案1】:

在 onResume 检查是否有任何权限被拒绝,如果有则请求权限。 onCreate 是有风险的,因为在创建 Activity 时会调用一次该方法。

也许这是您的用例:

用户添加权限,点击主页按钮 -> 删除您应用的权限。

【讨论】:

    【解决方案2】:

    检查您的目标 SDK 版本。如果它是 23 或更高版本,则将其降低到 22 或更低版本,因为 23 或更高版本的 Sdk 版本需要运行时权限,如果您仅在清单文件中提及这些权限,则会导致您的应用程序崩溃。但是,允许在清单文件中仅提及某些权限。

    点击此链接了解更多详情: https://inthecheesefactory.com/blog/things-you-need-to-know-about-android-m-permission-developer-edition/en

    也将你的权限放在清单文件中的应用程序标签之外,然后检查应用程序是否仍然崩溃。

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多