我正在设置一个包含一些产品风格的Android gradle项目。除了我的一种口味之外,我想获得<uses-permission android:name="android.permission.INTERNET" />
的许可。我知道可以有一个特定的风格添加一个权限,但是可以有一个风格删除吗?
我能想到的另一个解决方案是将<uses-permission android:name="android.permission.INTERNET" />
权限添加到我的所有口味中,除了那个,这看起来很痛苦。
答案 0 :(得分:21)
我知道这已经过时了,但现在有一个名为tools:node="remove"
的新属性,可让您从Manifest中删除标记。
声明清单的标题如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
此外,你必须像这样添加你的标签:
<uses-permission android:name="android.permission.INTERNET" tools:node="remove" />
我希望这有助于其他人。
来源:HERE
Android文档:HERE
修改强>
编辑答案以匹配新的API更改。感谢Martin L.的评论
答案 1 :(得分:11)
根据docs,你可以:
通过向您的清单添加类似此项<permission android:name="permissionOne" tools:node="remove"/>
并为每个风格声明单独的AndroidManifest.xml部分
src/myFlavor/AndroidManifest.xml
将合并此主AndroidManifest.xml
答案 2 :(得分:1)
gradle合并清单所以可能没有。我已经通过从主清单中删除标签并将其添加到所有特定风格中来解决类似问题(广播接收器包名称)。