由于缺少权限请求,应用程序崩溃 [重复]
Posted
技术标签:
【中文标题】由于缺少权限请求,应用程序崩溃 [重复]【英文标题】:App crashes due to missing permission request [duplicate] 【发布时间】:2018-06-12 11:06:50 【问题描述】:我在 Firebase 的崩溃报告部分收到以下运行时异常:
java.lang.SecurityException:“gps”位置提供程序需要 ACCESS_FINE_LOCATION 权限。
正如this answer 所说,异常可以通过在运行时请求权限来解决。
然而,真正困扰我的是,在我的 Manifest 文件中,我只请求 COARSE LOCATION 权限,而 FINE LOCATION 从来没有。
AndroidManifest.xml
... // other permissions
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
... // no sign of fine location
为什么缺少权限会引发这样的异常?
注意:这是该应用自启动以来首次崩溃。崩溃发生在装有 Android 4.4.2 的 ALLVIEW VivaH7 API 19 上。 (在任何其他设备或 API 上还没有类似的崩溃)
此外,COARSE LOCATION 是否与 FINE LOCATION 一样被视为危险许可?因此,我应该在运行时请求 COARSE LOCATION 的权限吗?
【问题讨论】:
您不能使用只有课程位置的 gps 提供程序。如果您使用 gps,则必须请求 ACCESS_FINE_LOCATION。如果你不需要 gps 并且只需要网络位置,那么你可以使用 ACCESS_COARSE_LOCATION。 @DanielNugent 我明白,我以某种方式记住了它们,因此是错误的。感谢和抱歉给您带来的麻烦。 【参考方案1】:ACCESS_FINE_LOCATION
和 ACCESS_COARSE_LOCATION
都是危险权限。
获取位置时需要 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION 网络提供商。
虽然,
当您从以下位置获取位置时,需要 ACCESS_FINE_LOCATION GpsProvider。
因此,如果您从NetworkProvider
和GpsProvider
获取位置,您还必须在AndroidManifest.xml
中添加ACCESS_FINE_LOCATION
权限,
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
【讨论】:
为什么?只要我需要粗略估计用户的位置,我就认为添加另一个权限没有意义。我的问题仍然存在,为什么应用程序由于缺少清单中未说明的权限而崩溃? 检查我的答案@CatalinGhita 正如我上面所说,我以某种方式记住了他们。因此错了,谢谢! 您必须再等 2 分钟。我已经试过了,看来你太快了哈哈 显然,我不能这么快就批准答案。这是 SO 的政策。现在应该可以了以上是关于由于缺少权限请求,应用程序崩溃 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
heroku 应用程序由于缺少模块而崩溃,但可以在 localhost 上运行