【问题标题】:Android manifest file breaks after adding a permission添加权限后Android清单文件中断
【发布时间】:2013-05-09 08:39:40
【问题描述】:

我继承的一个 Android 项目有一个非常奇怪的问题。我尝试为其添加权限,但突然间其他一些权限中断,红色“X”与此错误一起显示:

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

如果我所做的只是添加权限,这怎么可能?如果我不保存清单并清理项目,所有红色的“X”标记都会消失并再次编译。为什么会这样?

【问题讨论】:

  • 您要添加哪个权限??
  • 在此处发布 AndroidManifest.xml
  • @gonzobrains - 请重新审视这个问题,因为您选择的答案被误认为是真正的问题
  • “真正的”问题(无论如何对我来说)是为什么 Eclipse 现在让我为此感到悲伤,但以前从未打扰过。我意识到根本原因是不允许这些权限。事实上,在 Eclipse 突然开始“打破”这一点之前,它们在程序执行期间就被禁止了。我很高兴得知我可以使用@ling.s 提供的解决方案忽略 Eclipse。

标签: android manifest


【解决方案1】:

在 Eclipse 中,转到

Window -> Preferences -> Android -> Lint Error Checking.

在列表中找到带有ID = ProtectedPermission 的条目。将 Severity 设置为低于 Error 的值。这样您仍然可以使用 Eclipse 编译项目。

【讨论】:

  • 为什么我会遇到这个问题?
  • 这允许我构建,但问题仍然存在。为什么允许我在没有错误之前编译它,但修改清单会导致错误出现?
  • 这并不能真正解决根本问题,即这些权限不适用于 3rd 方应用,期间。警告级别的变化不会改变这一事实。
  • @ChrisStratton 我已经通过 logcat 确定,以前,即使应用程序可以构建和执行,权限也会被拒绝。然而,我试图发现的是为什么 Eclipse 现在才开始将其报告为错误。我在 SO 上看到了其他问题,人们讨论了类似的发现。我了解权限不可用;我只是想弄清楚为什么 Eclipse 以前允许它们,但现在不允许。
  • @gonzobrains - 因为 android 工具(以及对于其他一些问题,运行时)在打击民间传说和保护新手开发人员免受持续的坏习惯方面越来越特别。谷歌 Android 团队的一些成员不时在这里阅读内容,偶尔回答问题,并且毫无疑问地翻白眼。声明这些权限从未起作用,工具现在将其称为错误这一事实与其说是功能更改,不如说是一种教育机制。
【解决方案2】:

有一些权限(例如,MODIFY_PHONE_STATE)只能授予使用系统证书签名的应用程序。因此,如果您尝试添加其中一项权限,则 Lint 会在编译应用程序的清单文件时引发红旗。

【讨论】:

  • 是的,但是项目之前是使用这些权限编译的,所以我不知道为什么仅仅因为我修改了清单文件就会出现问题。
  • 也许您更新到了更新、更智能的 SDK 或 ADT 版本?或者您更改了目标 SDK 版本?
  • 这是正确答案 - 在哪个版本相对无关紧要的情况下产生或没有产生咨询警告。
猜你喜欢
  • 2014-06-06
  • 2012-05-28
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多