我正在尝试使用清单占位符来删除
AndroidManifest.xml中的uses-permission节点以获取发布版本,但没有运气.
的build.gradle
buildTypes { release { manifestPlaceholders.excludeDebugPermissions = "remove" } debug { manifestPlaceholders.excludeDebugPermissions = "merge" } }
AndroidManifest.xml中
<uses-permission android:name="android.permission.SYstem_ALERT_WINDOW" tools:node="${excludeDebugPermissions}" />
它会产生如下错误:
Error:Execution Failed for task ‘:app:processDebugManifest’.
No enum constant com.android.manifmerger.NodeOperationType.${EXCLUDE_DEBUG_PERMISSIONS}
但是在其他任何地方使用占位符都能正常工作(合并后的清单是正常的并且没有错误),例如
<uses-permission android:name="${excludeDebugPermissions}" tools:node="remove" />
所以我想工具:node属性不支持清单占位符,我可能会通过替换权限名称而不是节点标记(合并/删除)来破解它,但我希望尽可能避免使用它.
有什么建议吗?
解决方法
我发现解决此问题的最简单,最干净的方法是创建一个仅发布的AndroidManifest文件(app / src / release / AndroidManifest.xml),其中包含以下内容以删除SYstem_ALERT_WINDOW权限:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.SYstem_ALERT_WINDOW" tools:node="remove"/> </manifest>
原文地址:https://www.jb51.cc/android/317779.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。