权限仅授予系统应用程序。

115

我有一个使用系统权限的系统应用程序,并在清单文件中列出了这些权限。当我尝试构建应用程序时,Eclipse会给出以下错误信息:

 

只授予系统应用程序权限

我已经知道我的应用程序需要系统权限,而且这对我来说不是问题,因为我的应用程序只会在已经root的手机上使用。因此,我希望抑制这个错误,有人知道如何做吗?

编辑
我的项目已经在命令行上编译通过,并成功安装和运行。我的问题是关于Eclipse对合法清单文件发出错误提示。


2
你有看过这个吗 https://dev59.com/K2kx5IYBdhLWcg3wA_xS - Andro Selva
@AndroSelva 这与问题无关,我的项目在命令行上编译、安装和运行都没问题。我的问题是关于Eclipse对合法的清单文件报错。在我看来,它只应该在这种情况下发出警告。 - Caner
7个回答

218

在 Eclipse 中:

菜单栏选择“Window” -> “Preferences” -> “Android” -> “Lint Error Checking”。

在列表中找到一个具有ID = ProtectedPermission的条目。将其严重性设置为低于错误级别。这样,您仍然可以使用 Eclipse 编译项目。

在 Android Studio 中:

菜单栏选择“File” -> “Settings” -> “Editor” -> “Inspections”。

Android Lint下,找到Using system app permission。取消复选框或选择低于错误级别的严重性。


1
谢谢!在Android Studio 1.2中,我发现这个选项在“文件”-> “设置”-> “编辑器”->“检查”下面。 - Aaron
我想通过编程方式改变屏幕亮度。我已经在设置下编辑了Lint。但是在尝试通过编程方式改变屏幕亮度时,它会抛出一些安全异常。如果有人有任何解决方案来在Android 3.1以上的Marshmallow中实现此功能,请分享。 - Nithinjith
4
在Android Studio 2.1中,前往文件->设置->编辑器->检查,然后展开Android > Lint > Correctness。选择“使用系统应用程序权限”,更改严重程度或取消复选框。 - Ezekiel Baniaga
4
对我来说,这个是在 Android > Lint > Correctness 下面。 - Beyondo

108

如果只想忽略此错误一次,可以在权限声明中添加tools:ignore="ProtectedPermissions"属性。以下是示例:

```xml ```
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
    tools:ignore="ProtectedPermissions" />
你需要在清单根元素中添加tools命名空间。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

4
这是正确的答案。 为什么要在只需要部分检查时禁用整个检查呢? 谢谢您先生! - Yoraco Gonzales

13

我偶尔会遇到同样的错误(当我在清单文件中将安装位置设置为“prefer external”时)。只需清理并重新构建项目。这对我有效。


7
tools:ignore="ProtectedPermissions"

尝试向该权限添加此属性。

4
当您在清单中添加权限时,然后在Eclipse中进入项目并点击:
  1. 点击项目
  2. 点击清理项目 就这样了
点击清理项目。

3

在Mac上Android Studio中的路径:

Android Studio -> 首选项 -> 编辑器 -> 检查

展开Android -> 展开Lint -> 展开正确性

取消 使用系统应用程序权限 的复选框

点击 "应用" -> "确定"


1

偏好设置 --> 编辑器 --> 检查 --> Android Lint --> 取消选中“使用系统应用程序权限”项目


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接