【问题标题】:Android studio does not compile permission in manifestAndroid Studio 未在清单中编译权限
【发布时间】:2018-02-05 23:12:16
【问题描述】:

我遇到了一个很奇怪的问题,工作室编译了除一个之外的所有manifest权限:

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

在其他编译器中测试-成功编译的权限。 你怎么能解决这个真正奇怪的问题? 我的完整权限列表:

<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />

【问题讨论】:

  • 你是怎么验证编译成功的,用android.permission.SYSTEM_ALERT_WINDOW
  • 从什么开始编译权限?您是否遇到任何构建错误?
  • 对了,解释一下这个过程?
  • 编译时没有报错,但是编译出来的manifest没有这个权限
  • 你能发布这个编译的清单吗?

标签: android android-studio


【解决方案1】:

如果应用以 API 级别 23 或更高级别为目标,应用用户必须通过权限管理屏幕明确授予应用此权限。应用程序通过发送带有操作 ACTION_MANAGE_OVERLAY_PERMISSION 的意图来请求用户的批准。应用可以通过调用 Settings.canDrawOverlays() 来检查是否有这个权限。

【讨论】:

  • 但是其他编译器成功编译了这个权限。那么工作室如何编译这个权限呢?
  • 他们的目标可能仍在 23 岁以下
  • 我的想法完全正确,你能发布 sdk 版本吗?
【解决方案2】:

我通过修改 build.gradle 文件解决了这个问题。 我将 targetSdkVersion 从 26 更改为 19(

【讨论】:

    【解决方案3】:

    您不能使用 SYSTEM_ALERT_WINDOW 权限,因为它具有签名保护级别。

    signature protection level - clarifying 看看https://developer.android.com/guide/topics/manifest/permission-element.html

    另外你不能使用 BIND_ACCESSIBILITY_SERVICE 权限,它也有签名保护级别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 2012-05-28
      • 2019-10-28
      相关资源
      最近更新 更多