权限仅授予系统应用程序


98

我有一个使用系统权限的系统应用程序,清单中列出了这些权限。当我尝试进行构建(命令行构建有效)时,Eclipse给出以下错误

权限仅授予系统应用程序

我已经知道我的应用程序需要系统权限,这对我来说不是问题,因为我的应用程序仅在有根电话上使用。所以我想抑制这个错误,有人知道吗?

编辑
我的项目已经可以在命令行上正常编译,安装,运行等。我的问题是关于eclipse的合法清单文件出错。



@AndroSelva,它是无关的,我的项目已经可以在命令行编译,安装,运行等了。IMO在这种情况下只应发出警告。
Caner 2012年

Answers:


205

在Eclipse中:

窗口->首选项-> Android->棉绒错误检查。

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

在Android Studio中:

文件->设置->编辑器->检查

在下面Android Lint,找到Using system app permission。取消选中该复选框,或者选择严重性低于错误。


1
谢谢!在Android Studio 1.2中,我在文件->设置-> 编辑器 ->检查下找到了它。
亚伦

我想以编程方式更改屏幕亮度。我在设置下编辑了Lint。但是在尝试以编程方式更改屏幕亮度时,它引发了一些安全异常。任何人都可以在Marshmallow以上的Android 3.1中实现此功能的任何解决方案,请分享。
Nithinjith

3
在Android Studio 2.1中,转到文件->设置->编辑器->检查,然后展开Android> Lint>正确性。选择“使用系统应用程序权限”,更改严重性或取消选中该复选框。
Ezekiel Baniaga

2
Android > Lint > Correctness对我来说是不对的。
Beyondo

74

要仅针对一个实例忽略此错误,请将tools:ignore="ProtectedPermissions"属性添加到权限声明中。这是一个例子:

<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"

3
这是正确的答案。为什么只需要部分检查就禁用整个检查。谢谢你,先生!
Yoraco Gonzales

您需要添加名称空间... xmlns:tools =“ schemas.android.com/tools
purplecabbage

13

有时会有相同的错误(当我在清单中将安装位置设置为“首选外部”时)。只是清理并重建项目。为我工作。


3

当您在清单中添加权限时,在eclipse中转到项目和clic

  1. 点击项目
  2. 点击干净的项目

清洁项目


2
tools:ignore="ProtectedPermissions"

尝试将此属性添加到该权限。


1

首选项-> EditorEditor->检查-> Android Lint->取消选中使用系统应用程序权限


1

Mac中Android Studio中的路径:

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

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

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

点击“应用”->“确定”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.