应用程序因缺少权限请求而崩溃[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用程序因缺少权限请求而崩溃[重复]相关的知识,希望对你有一定的参考价值。

我在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被认为是危险的许可以及精细的位置吗?因此,我应该在运行时请求COARSE LOCATION的权限吗?

答案

ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION都是危险的许可。

从NetworkProvider获取位置时,需要ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION。

而,

从Gps Provider获取位置时,需要ACCESS_FINE_LOCATION。

因此,如果您从NetworkProvider以及GpsProvider获得位置,您必须在ACCESS_FINE_LOCATION中添加AndroidManifest.xml权限,

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

以上是关于应用程序因缺少权限请求而崩溃[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从片段内请求权限后应用程序崩溃

Android 应用程序不断因空指针异常而崩溃

启用 Proguard 时,Xamarin Android 应用程序因缺少 google play 服务类而崩溃

应用程序不断因 NullPointerException 而崩溃 [重复]

应用程序因 classes.dex 权限被拒绝错误而崩溃

我的应用程序因 SecurityException 而崩溃,说它需要文件 IO。如何找出正在访问的文件以便授予它权限?