我正在尝试使用清单占位符来删除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}" />
出现这样的错误:
错误:执行任务“:app:processDebugManifest”失败。 com.android.manifmerger.NodeOperationType.${EXCLUDE_DEBUG_PERMISSIONS}中没有枚举常量
但在其他任何地方使用占位符都可以正常工作(合并的清单文件正确,没有错误),例如:
<uses-permission
android:name="${excludeDebugPermissions}"
tools:node="remove" />
所以我认为tools:node
属性不支持清单占位符,因此我可能会通过替换掉节点标记(merge
/ remove
)的方式来实现权限名称的替换,但如果可能的话,我宁愿避免这样做。
有什么建议吗?