无法解析Manifest.permission.ACCESS_FINE_LOCATION

Pab*_*rra 73 permissions service gps android manifest

向我的清单文件添加权限时,以下xml可以正常工作.

 <permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

但是,这个xml不起作用.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

我应该使用哪一个?如果是第一个,为什么它不起作用?我该如何解决?

此外,我得到一个Android 6.0运行时权限相关的异常:

java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.
Run Code Online (Sandbox Code Playgroud)

当我尝试将权限添加到String数组以检查权限时,Android Studio告诉我它无法Manifest.permission在以下代码中解析:

new String[]{Manifest.permission.ACCESS_FINE_LOCATION}
Run Code Online (Sandbox Code Playgroud)

为什么要这样做?我该如何解决?

son*_*tt1 211

对于第一部分,您应该<uses-permission> 根据Android Devlopers网站使用.请确保直接<manifest>代码下声明您的权限,而不是在<application>代码中.如果没有看到整个清单文件,很难知道你的问题是什么.查看我上面发布的链接,了解有关如何在清单中声明权限的更多信息.

关于运行时权限问题:

使用权限无法解析..

new String [] {Manifest.permission.ACCESS_FINE_LOCATION}

为什么?

确保你使用android.Manifest而不是my.app.package.Manifest.Android Studio很多时候会默认使用后者而不是前者.

因此,您的新代码行如下所示:

new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};
Run Code Online (Sandbox Code Playgroud)

编辑:我重新格式化了我的答案.

编辑2:警惕导入android.Manifest.如果您还要导入,则可能会导致问题my.app.package.Manifest.除此之外import android.Manifest是解决此问题的另一种有效方法.

  • 使用 andorid.Manifest.permission.X 而不是 Manifest.permission.X 为我解决了这个问题,谢谢。 (2认同)

小智 82

改变这一点

Manifest.permission.ACCESS_FINE_LOCATION

进入这个

android.Manifest.permission.ACCESS_FINE_LOCATION

  • 你介意解释为什么需要吗? (4认同)

San*_*nde 20

试试这个!由于ACCESS_FINE_LOCATION可在以下包中使用,因此添加:

import android.Manifest;
Run Code Online (Sandbox Code Playgroud)

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­


小智 10

添加此导入 android.Manifest; 在此输入图像描述


Mar*_*ero 8

如果您已经在清单文件中正确设置了uses.permissions,正如hnilsen已经提到的,只需替换您的行:

 Manifest.permission.ACCESS_FINE_LOCATION
Run Code Online (Sandbox Code Playgroud)

通过这个:

 android.Manifest.permission.ACCESS_FINE_LOCATION
Run Code Online (Sandbox Code Playgroud)

这可以解决你的问题。


Mad*_*gar 5

我在使用时遇到了类似的问题;

ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED 
Run Code Online (Sandbox Code Playgroud)

无法解析符号的地方READ_CONTACTS

但是在使用时;

import android.Manifest;
Run Code Online (Sandbox Code Playgroud)

它开始认识到 READ_CONTACT